【问题标题】:Email validation in Javascript for a specific scenario针对特定场景的 Javascript 中的电子邮件验证
【发布时间】:2017-05-17 08:50:29
【问题描述】:

我已经尝试了几乎所有的正则表达式解决方案,但我仍然能够绕过对以下电子邮件的验证 -

test_test_test@yaho..co.uk

我需要使用Javascript 将此电子邮件标记为无效。请分享我可以用来将上述电子邮件标记为无效的正确正则表达式。

【问题讨论】:

  • 向我们展示您尝试过的所有正则表达式解决方案
  • /^[\w_\-\.\d]+@([\w_\-\d]+\.)+[\w_\-\d]{2,5}$ /
  • ... 其余由 Stackoverflow 建议。

标签: javascript email-validation


【解决方案1】:

您可以使用 Regex101 中的this one

我认为你之前的正则表达式可能会不小心在字符列表中包含\.+ 量词,所以@xx..co 仍然可以绕过

var regex = /^[0-9a-zA-Z-_\$#]+@[0-9a-zA-Z-_\$#]+\.[a-zA-Z]{2,5}/;
console.log(regex.test('test_test_test@yaho..co.uk'));

【讨论】:

    【解决方案2】:

    试试这个:

    function validateEmail(email) {
        var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
    }
    
    console.log(validateEmail("test_test_test@yaho..co.uk"));
    console.log(validateEmail("test_test_test@yaho.co.uk"));

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 2014-04-07
      • 2013-12-13
      • 2023-04-06
      • 2011-10-20
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      相关资源
      最近更新 更多