我对我的电子邮件参数进行了正则表达式检查,我还要为密码参数实现正则表达式检查。
对于我的电子邮件帐户,我会这样做:
- (BOOL)isValidEmailAddress:(NSString*)emailAddressToCheck
{
BOOL stricterFilter = YES;
NSString *stricterFilterString = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSString *laxString = @".+@.+\\.[A-Za-z]{2}[A-Za-z]*";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailAddressToCheck];
}
但我想知道如何才能进行密码参数检查:
任何想法我该怎么做?
答案 0 :(得分:3)
Idan,作为一个正则表达式的爱好者,我真的不想说正则表达式是不可能的。但是,我并不认为您指定的任务对于正则表达式来说是一项很好的任务。没错,有人可以想象找到一种破解解决方案的方法,我之前已被吹走了。话虽如此,我从未见过下面第2点的解决方案。
例如,要检查每个字符(例如a
)在字符串中出现的次数少于3次,这是非常具有挑战性的,并且可能涉及无限宽度的环视,仅在.NET中可用< / p>
在检查abc
,123
,987
我确定你知道,3号不是问题。在unicode环境中,\d
可以代表阿拉伯数字,最好坚持使用特定字符类,例如[a-z0-9]
不区分大小写模式。
我会为每个标准制作单独的方法,忘记正则表达式,当然除了作为简单条件的预过滤器。