此代码验证您的电子邮件字段,但我无法理解它是如何工作的。
NSString *e = email.text;
NSString *emailRegEx =@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
NSPredicate *regExPredicate =[NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
BOOL myStringMatchesRegEx = [regExPredicate evaluateWithObject:e];
NSLog(@"myStringMatchesRegEx = %d ",myStringMatchesRegEx);
答案 0 :(得分:2)
这是一个巨大的正则表达式:)
基本上,NSPredicate
表示它希望自己匹配(最后是NSString
)和正则表达式(你熟悉正则表达式吗?)并返回YES / NO如果给定的NSString(即email.text)与该正则表达式匹配,则响应。
从本质上讲,它确保电子邮件文本根据大量的正则表达式(我不会进入,因为它需要数小时才能解决)才有效。