这个 javascript 函数 (checkValidity) 是否正确?
function checkTextBox(textBox)
{
if (!checkValidity(textBox.getValue()))
displayError("Error title", "Error message", textBox);
textBox.focus();
}
function checkValidity(e)
{
var email;
email = "/^[^@]+@[^@]+.[a-z]{2,}$/i";
if (!e.match(email)){
return false;
else
return true;
}
}
编辑:感谢所有答案!谢谢!
最佳答案
电子邮件地址在 RFC 5322, § 3.4 中定义.相关的非终端是addr-spec
。由于域规范的复杂性和支持旧的、过时的形式,这个定义有点奇怪。但是,您可以使用以下方法对大多数形式进行过度近似:
^[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+@[-0-9A-Za-z!#$%&'*+/=?^_`{|}~.]+
请注意,有大量的合法字符。大多数正则表达式都把列表弄错了。是的,所有这些字符在电子邮件地址中都是合法的。
这个正则表达式不会匹配一些非常不常用的形式,比如 "noodle soup @ 9"@[what the.example.com]
-- 这是一个合法的电子邮件地址!
关于javascript - 电子邮件验证javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783672/