regex - 电子邮件正则表达式验证器不允许返回

标签 regex validation email

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

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

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

Line 1 here (no email, so all good)

[no more input allowed after the return]

试图研究但找不到任何有用的东西,在此先感谢!

最佳答案

使用

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

.不匹配换行符。

参见 this JS fiddle .

请注意,tempered greedy token 是一种资源消耗模式,我宁愿建议使用简单的先行解决方案:

^(?![\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]* 将匹配整个内容(如果您的实现需要整个字符串匹配,否则 - 将其删除)。

关于regex - 电子邮件正则表达式验证器不允许返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841993/

相关文章:

c++ - boost 正则表达式不匹配标签

javascript - 客户端自定义验证未执行

python - PyQt QWizard 验证和按钮覆盖

javascript - jQuery 验证名称属性包含方括号的字段?

android - 如何阻止电子邮件 Intent 导致强制关闭错误?

Java邮件 : MimeMessage sent as plain text when HTML is expected?

objective-c - NSRegularExpression 是否支持部分不区分大小写?

Javascript替换换行符

python - 使用 python 如何在文本文件的选择行中插入字符串,其中插入的字符串取决于行的内容和已知的映射?

php - 发送带有附件的自动电子邮件时,有时文件会重复