我在HTML文本区域中使用此正则表达式验证表达式,以避免用户在其中输入电子邮件地址:
/.*^((?![a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+).)*$/
验证器工作正常,但是当输入回车后,表达式将不允许再输入任何文本。就像这样:
尝试过搜索,但找不到有用的信息,谢谢!第一行(没有电子邮件,所以一切都好)
[在回车后不允许再输入]
我在HTML文本区域中使用此正则表达式验证表达式,以避免用户在其中输入电子邮件地址:
/.*^((?![a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+).)*$/
尝试过搜索,但找不到有用的信息,谢谢!第一行(没有电子邮件,所以一切都好)
[在回车后不允许再输入]
使用
^((?![a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)[\s\S])*$
^^^^^^
.
不匹配换行符。
请参见这个JS fiddle。
请注意,温和的贪婪标记是一种消耗资源的模式,我建议使用简单的前瞻解决方案:
^(?![\s\S]*?[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)[\s\S]*
请查看这个JS fiddle。
在这里,^
将断言字符串的开头,(?![\s\S]*?[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+)
负向先行断言将在文本区域中找到类似电子邮件的字符串时失败匹配,[\s\S]*
将匹配整个内容(如果您的实现需要整个字符串匹配,如果不需要-请删除它)。
.*^
。如果你正在使用 JavaScript,则将其替换为^[\s\S]*
。这是我的第一个猜测,因为.
不匹配换行符。 - HamZa.*^
部分总是匹配字符串的开头。该正则表达式匹配不像电子邮件的字符串。如果锚点匹配行边界,则它只会失败于该行(如果任何一行类似于电子邮件)。请提供一些相关代码。 - Wiktor Stribiżew