iOS正则去除所有符号

最近做的应用需要用到极光推送的标签,应用中的一些需要设置标签的字段是用户自己输入的,但是在极光上对设置标签有特殊符号的限制,所以自己做了一些处理,仅供参考!

-(NSString *)deleteIllegalCharWith:(NSString *)searchStr

{

    NSString *replaceUnderline=[searchStr stringByReplacingOccurrencesOfString:@"_" withString:@" "];//将下划线剔除出来

    NSError *error = nil;

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\\p{P}~^<>]" options:NSRegularExpressionCaseInsensitive error:&error];//这个正则可以去掉所有的符号,空格除外

    NSString *modifiedString = [regex stringByReplacingMatchesInString:replaceUnderline options:0 range:NSMakeRange(0, [replaceUnderline length]) withTemplate:@""];

    NSString *replaceBlank=[modifiedString stringByReplacingOccurrencesOfString:@" " withString:@"_"];//再将空格转化成下划线,因为空格也不可以设置标签

    return replaceBlank;

}



你可能感兴趣的:(iOS技术要点)