【问题标题】:Regex - disallow www in email address [duplicate]正则表达式 - 不允许在电子邮件地址中使用 www [重复]
【发布时间】:2017-08-24 06:51:35
【问题描述】:

我正在使用正则表达式来验证在线表单中的电子邮件地址。很多邮件都是这样输入的:www.test@example.com

如何禁止使用 www.使用正则表达式?我现在的表情:

^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$

我知道这个表达式会检查 gTLD - 我们需要一个电子邮件地址才能拥有一个。

编辑:这个问题与我发现的其他问题略有不同,因为我不确定如何添加 www 排除项 - 这就是我所需要的。

此外,我们到达的目标市场与大多数人使用技术的经验不同,因此我们收到的带有www 的电子邮件地址数量巨大。 www.john@gmail.com 是完全有效的,是的,但 99% 的时间不是个人电子邮件地址。我们的 CRM 系统无法将电子邮件发送给正确的人。

【问题讨论】:

  • Please don't use a regex to validate an email。如果您有特定情况,请通过添加一些示例和结果告诉我们;)。
  • 顺便说一句,您可以使用负面的期待,例如^(?!www\.)... ;)。
  • 我知道使用正则表达式的负面影响,但是我们正在验证的地址是非常简单的地址,例如 test@example.com。我们需要 gTLD,因为人们经常忘记它们。话虽如此,我们并不只需要test@example 这样的域名地址,虽然它是有效的,但我们的目标市场并不使用它们。在奇怪的情况下,一两个可能会比忘记 .com 的人数少得多。
  • 所以像^\w+@\w+\.[a-z]{2,}$ 这样的正则表达式将满足您的需求;)。
  • 为什么要做这样的事情? www.test@example.com 是一个完全有效的电子邮件。

标签: regex email email-address


【解决方案1】:

你可以使用正则表达式

^(?!www\.)[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$

regex demo

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2018-08-25
    • 2018-02-10
    • 2015-08-24
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多