iOS正则的一个小坑

2021-08-10  本文已影响0人  koreadragon

我们有如下的一个正则,用来校验密码。
之前是@"^(?=.*[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];
上一篇 下一篇

猜你喜欢

热点阅读