【发布时间】:2021-05-27 08:01:59
【问题描述】:
我有一些要求来验证电子邮件地址,并为此目的有一些正则表达式。 但是如何将它们组合到一个正则表达式中以使其正常工作?
(?=^\\S+@\\S+\\.\\S+$)
带点的电子邮件地址
(?=^[A-Za-z0-9@$\\._-]+$)
允许使用字母数字、'@'、'.'、'_'、'-'
(?=^[A-Za-z0-9].*$)
不能以特殊字符开头
(?=^.{5,100}$)
5 到 100 个字符
(?=^((?!([0-9]{9,}\\1)).)*$)
不是九个或更多数字
(^(?!.*[@].*[@]).*$)
一个标记
【问题讨论】:
-
你有没有尝试连接表达式?
-
"允许字母数字、'@'、'.'、'_'、'-'" 因此,它不允许有效字符,如
+或西里尔文或中文,或变音符号,或其他非拉丁字符。 “介于 5 到 100 个字符之间”在这里设置下限很奇怪a@b.c是五个字符。如果其中任何一个被删除,由于其他规则,它将无效。上限也是不需要的 - 确定不是很多地址使用它似乎不是限制它的好理由。 This is the real maximum。 “不是九个或更多数字”非常奇怪的验证规则。 -
为什么会有这么多麻烦,而不仅仅是
<input type="email" />? -
@NiettheDarkAbsol 不知道。有很多很多开发人员似乎与合法电子邮件交战,根本不想接受它们。只有他们对电子邮件应该是什么的解释,即使他们的解释对其应用程序的任何部分的工作方式没有真正的影响。这就像要求用户在单击按钮时单脚站立 - 仅用于指示用户应该如何行为而不需要这样做或产生任何影响。
标签: javascript regex validation