【问题标题】:Email Regular expression issue while using special characters [duplicate]使用特殊字符时的电子邮件正则表达式问题[重复]
【发布时间】:2016-04-02 07:07:20
【问题描述】:

我创建了以下正则表达式来验证我的电子邮件

- (BOOL)isValidEmail
{
    BOOL stricterFilter = YES;
    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:self];
}

但是当我输入以下内容时它失败了:

b. !@#$%^ bfv@mn.cn

我的正则表达式有问题吗?

【问题讨论】:

  • 您几乎无法验证电子邮件地址...唯一确定的方法是发送确认电子邮件。
  • @luk2302 我不这么认为..
  • @Umair !@ 不是有效的电子邮件地址
  • 随意尝试验证电子邮件地址并陷入痛苦的世界 - 继续尝试其他正则表达式
  • 而“horst@bayern”是您当前会拒绝的有效电子邮件地址 - 甚至不要尝试。

标签: ios regex nspredicate nsregularexpression


【解决方案1】:

试试这个。它非常适合我。

 NSString *mailreg=@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *mailtest=[NSPredicate predicateWithFormat:@"SELF MATCHES %@",mailreg];
return [mailtest evaluateWithObject:checkString];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 2012-02-26
    • 2010-11-03
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多