JavaScript验证电子邮件的格式不正确接受电子邮件格式@ abcd.com.gmail,
问题描述:
可能重复:
Validate email address in Javascript?JavaScript验证电子邮件的格式不正确接受电子邮件格式@ abcd.com.gmail,
我必须做的电子邮件格式验证,我现在用的是在行下面的CODE限制特殊字符。
onkeypress="return AlphaNumericBox(event,this,'@._);"
但现在的问题是我不有,例如确切格式的任何适当的验证它像" @abcd.com.gmail,.. "
也接受文本是否有任何JavaScript验证此? 有什么想法?
在此先感谢。
答
function CheckEmail(address){
address=address.replace(/(^\s*)|(\s*$)/g, "");
var reg=/([\w._-])[email protected]([\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=" [email protected] ";
var sVal2=" [email protected] ";
console.log(CheckEmail("[email protected]")); //outpus true
console.log(CheckEmail("@server.com")); //outpus false
答
我建议您使用此功能。我已经测试过很多次了。
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('[email protected]'); // returns true;
isValid = validateEmail('@server.com'); // returns false;
见[这里] [1] [1]:http://stackoverflow.com/questions/46155/validate-email-address-in-javascript – sym3tri
用户输入无效或不正确的电子邮件地址的机会远远大于通过电子邮件地址格式的规则输入无效的格式。检查用户是否正确输入电子邮件地址的最佳(即唯一可靠的)解决方案是向该地址发送电子邮件并查看他们是否响应。 – RobG
@ sym3tri:对于评论中的网址,使用下一个标记:'[text](url)'(当然没有空格),例如[本](http://stackoverflow.com/questions/46155/validate-email-address-in-javascript) – abatishchev