问题描述
在JavaScript中,如何验证Email地址的合法性?
解决方案
最好的方法是,使用正则表达式:
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(String(email).toLowerCase());
}
下面的正则表达式,可以接受包含所有unicode
字符在内的邮箱地址验证:
var re = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
记住,我们不能仅仅依靠客户端验证,因为JavaScript可能会被禁用;我们还应当在服务器端也进行校验。