iOS 正则处理 NSString,NSAttributedString

 
处理字符串
 NSString * regExpStr = @"(\\d{3})\\d{4}(\\d{0,4})";
NSString *resultString = [self stringByReplacingOccurrencesOfRegex:regExpStr withString:@"$1****$2"];
return resultString;

处理属性字符串
- (NSAttributedString *)replacePhoneNumber:(NSAttributedString *)sourceString
{
NSString * regExpStr = @"(\\d{3})\\d{4}(\\d{0,4})";
NSString *str = [sourceString string];
NSDictionary *attr = @{NSFontAttributeName:[UIFont systemFontOfSize:15]};
NSAttributedString *replacement = [[NSAttributedString alloc] initWithString:@"****" attributes:attr];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regExpStr options:0 error:nil];
NSArray* matches = [regex matchesInString:str
options:NSMatchingWithoutAnchoringBounds
range:NSMakeRange(0, sourceString.length)];
NSMutableAttributedString *resultString = [[NSMutableAttributedString alloc] initWithAttributedString:sourceString];
for (NSTextCheckingResult* result in [matches reverseObjectEnumerator]) {
NSRange matchRange = [result range];
[resultString replaceCharactersInRange:NSMakeRange(matchRange.location+3, 4) withAttributedString:replacement];
}
return resultString;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值