我们有如下的一个正则,用来校验密码。
之前是@"^(?=.*
[0-9])(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,32}$"
,最开始的那个[0-9]是\d,@"^(?=.*
\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,32}$"
发现老是校验不通过,最后测试发现是iOS系统会认为你要将\d默认替换一个数字,但是这个数字又没有,导致报错。最后改为[0-9]就OK了。
//密码长度相等,并且满足(密码长度8-32位,须包含数字、小写字母、大写字母)
NSString *regex = @"^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,32}$";
NSPredicate *pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
BOOL valid = [pre evaluateWithObject:pass];
网友评论