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