Yoo*_*oot 2 regex email iphone objective-c nspredicate
我正在尝试使用以下代码检查某些电子邮件地址是否正确:
NSPredicate *regexMail = [NSPredicate predicateWithFormat:@"SELF MATCHES '.*@.*\..*'"];
if([regexMail evaluateWithObject:someMail])
...
Run Code Online (Sandbox Code Playgroud)
但是"\".由于邮件"smith @ company"被接受,似乎没有用.此外,我有以下警告:"未知逃脱序列"
编辑:
我正在使用Objective-C for iPhone进行编程.
谢谢
0xc*_*ced 13
这是iOS Mail应用程序用于验证电子邮件地址的正则表达式:
^[[:alnum:]!#$%&’*+/=?^_`{|}~-]+((\.?)[[:alnum:]!#$%&’*+/=?^_`{|}~-]+)*@[[:alnum:]-]+(\.[[:alnum:]-]+)*(\.[[:alpha:]]+)+$
Run Code Online (Sandbox Code Playgroud)
这是一个复制/粘贴就绪函数,使用此正则表达式验证Objective-C中的电子邮件地址:
BOOL IsValidEmail(NSString *email)
{
// Regexp from -[NSString(NSEmailAddressString) mf_isLegalEmailAddress] in /System/Library/PrivateFrameworks/MIME.framework
NSString *emailRegex = @"^[[:alnum:]!#$%&'*+/=?^_`{|}~-]+((\\.?)[[:alnum:]!#$%&'*+/=?^_`{|}~-]+)*@[[:alnum:]-]+(\\.[[:alnum:]-]+)*(\\.[[:alpha:]]+)+$";
NSPredicate *emailPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailPredicate evaluateWithObject:email];
}
Run Code Online (Sandbox Code Playgroud)