【发布时间】:2016-04-01 12:45:17
【问题描述】:
我正在使用以下代码进行电子邮件验证。如果电子邮件 ID 以数字开头,那么它不接受,我想像 123a@asd.com 一样接受。请给我建议。
BOOL stricterFilter = NO;
NSString *stricterFilterString = @"^[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$";
NSString *laxString = @"^.+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2}[A-Za-z]*$";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:emailID];
提前致谢
【问题讨论】:
-
它对我来说已经很好了。再次检查
-
我已经检查了 123a@asd.com,它与我的答案相符。
-
它也适用于他的回答
-
严格的正则表达式表示接受
A-Z0-9a-z._%+和-作为电子邮件地址的项目,这意味着它将接受电子邮件地址的前导数字 - 代码按书面方式工作。现在,如果有前导 whitespace 或尾随 whitespace 那么这些将触发严格的拒绝,而尾随 whitespace 将触发宽松的拒绝
标签: objective-c regex email-validation