我必须对电子邮件格式进行验证,我使用下面的CODE来限制特殊字符。
onkeypress="return AlphaNumericBox(event,this,'@._);"
但现在的问题是我没有对确切的格式进行任何正确的验证,例如它也接受像" @abcd.com.gmail,.. "
这样的文本吗?对此有任何javascript验证吗?
任何想法?
提前致谢。
答案 0 :(得分:2)
function CheckEmail(address){
address=address.replace(/(^\s*)|(\s*$)/g, "");
var reg=/([\w._-])+@([\w_-])+(\.([\w_-])+){1,2}/;
var matcharr=reg.exec(address);
if(matcharr!=null){
if(matcharr[0].length==address.length){
return true;
}
return false;
}
return false;
}
eg:
var sVal=" t.st@gmail.com.cn ";
var sVal2=" t.st@gmail.com.cn.abc ";
console.log(CheckEmail("name@server.com")); //outpus true
console.log(CheckEmail("@server.com")); //outpus false
答案 1 :(得分:1)
我建议您使用此功能。我已经多次测试了。
function validateEmail (emailAddress) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(emailAddress);
}
现在,您可以轻松验证任何电子邮件地址:
var isValid = validateEmail('name@server.com'); // returns true;
isValid = validateEmail('@server.com'); // returns false;