【问题标题】:Regular expression need to accept +, -, & before @正则表达式需要在@之前接受+、-、&
【发布时间】:2013-05-22 23:28:17
【问题描述】:

正则表达式需要接受+,-,&需要在@之前接受电子邮件验证

([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4}) 在这个正则表达式中它不接受。

谁能给我正确的正则表达式。

例子:

demo+wifi-mail&name@gmail.com

【问题讨论】:

标签: ios regex titanium


【解决方案1】:

这个[\w\.]character class(我暂时删除了-)。方括号内的每个字符都由此类匹配。因此,您的班级匹配所有字母、数字和下划线(由 \w 部分完成)和点。

如果您想要其他字符,只需将它们添加到字符类中,例如[\w.+&-].

注意- 字符,它在字符类中具有特殊含义,要么对其进行转义,要么将其放在开头或结尾。

但请注意,您的正则表达式仍未匹配所有有效的电子邮件地址,请参阅 cmets 中的链接。

单个字符(无特殊含义)或类中编写的预定义类没有意义,[\w]\w 完全相同。

【讨论】:

    【解决方案2】:

    使用这个对你有帮助。

    ([\\w-\\.\\+\\-\\&}]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})
    
    NSString *phone=@"demo+wifi-mail&name@gmail.com";
    NSString *pNRegex = @"([\\w-\\.\\+\\-\\&}]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})";
    NSPredicate *PNTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pNRegex];
    BOOL check=[PNTest evaluateWithObject:phone ];
    NSLog(@"%i",check);----> 1
    

    【讨论】:

    • 正则表达式改为([\w-\.\+\-\&}]+)@((?:[\w]+\.)+)([a-zA- Z]{2,4}) 现在它对我有用!
    【解决方案3】:

    ([\w-.+-\&}]+)@((?:[\w]+.)+)([a-zA-Z]{2,4}) 现在它可以工作了!

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 2023-03-24
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多