1.iOS 10.1 之前一直用这段代码来做特殊字符判断,正常使用。最近用的时候发现无法进行判断了,一直是 return NO。
+ (BOOL)isNoTeShuZiFu:(NSString *)string {
NSString *regex = @"[^a-zA-Z0-9\u4E00-\u9FA5,.?:;()!{}<>#*-+=,。、?:;()!{}+=]➋➌➍➎➏➐➑➒";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [pred evaluateWithObject: string];
}
2、可检测到字符串中任意位置的特殊字符(方法1失效后找到的另一个可代替方法)
+ (BOOL)isNoTeShuZiFu:(NSString *)string {
NSString *regex = @"[^a-zA-Z0-9\u4E00-\u9FA5,.?:;()!{}<>#*-+=,。、?:;()!{}+=]➋➌➍➎➏➐➑➒";
NSRange urgentRange = [string rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: regex]];
if (urgentRange.location == NSNotFound)
{
return NO;
}
return YES;
}