电子邮件正则表达式验证程序不允许返回

时间:2016-11-28 10:27:41

标签: regex validation email

我在HTML文本区域中有这个正则表达式验证表达式,以避免用户在那里键入电子邮件地址:

/.*^((?![a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+).)*$/

验证器工作正常,但是,当键入返回时,表达式将不再允许任何文本。类似的东西:

  

这里的第1行(没有电子邮件,所以一切都很好)

     

[返回后不再允许输入]

试图进行研究,但事先没有找到任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

使用

^((?![a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)[\s\S])*$
                                                     ^^^^^^

.与换行符不匹配。

请参阅this JS fiddle

请注意,淬火贪婪令牌是一种消耗资源的模式,我建议使用简单的先行解决方案:

^(?![\s\S]*?[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)[\s\S]*

请参阅this JS fiddle

此处,^将断言字符串的开头,(?![\s\S]*?[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)否定前瞻将在文本区域中找到类似电子邮件的字符串时使匹配失败,并且[\s\S]*将匹配整个内容(如果你的实现需要整个字符串匹配,如果没有 - 删除它)。