防止使用正则表达式的双下划线(__)

3

我正在使用正则表达式进行电子邮件验证,以验证诸如以下格式的电子邮件地址:

  • abc__xyz@gmail.com
  • abc..xyz@gmail.com
  • abc@gmail.com99

对于最后两个电子邮件格式,我的工作正常,但不适用于第一个(不应出现两个连续的下划线)。 目前我正在使用:

Original Answer翻译成"最初的回答"

var regex = /^[a-z0-9!$%*=?^_`{|}~-]+(?:\.[a-z0-9!$%*=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)$/i;

请问有谁能帮忙避免出现两个连续的下划线(_)吗?

最初的回答:


2
连续两个下划线在电子邮件地址中有什么问题? - undefined
当您在电子邮件中使用两个连续的下划线时,它是有效的电子邮件。您的正则表达式实际上运行良好,除非您在进行常规电子邮件验证之外做了其他操作。 - undefined
@Pointy没有什么问题,但根据要求,我必须防止连续的下划线。 - undefined
你有没有查看过https://dev59.com/KGjWa4cB1Zd3GeqPp1oB? - undefined
1个回答

1

尝试:

var regex = /^(?!.*__.*)[a-z0-9!$%*=?^_`{|}~-]+(?:\.[a-z0-9!$%*=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)$/i;

来源:不允许使用双下划线的正则表达式


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接