针对特定场景 Javascript 中的电子邮件验证

Email validation in Javascript for a specific scenario

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

test_test_test@yaho..co.uk

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

试试这个:

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"));

您可以使用来自 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'));