【发布时间】:2013-02-07 15:36:13
【问题描述】:
我是 JavaScript 新手,在互联网上发现了这个验证给定电子邮件的 JavaScript 代码(代码没有问题)-
<html>
<h2>Email Validation</h2>
<script language = "Javascript">
function checkEmail(emailId) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailId)){
document.write("You have entered valid email.");
return true;
}
return false;
}
function ValidateEmail(){
var emailID=document.form.email;
if ((emailID.value==null)||(emailID.value=="")){
alert("Please Enter your Email ID")
emailID.focus()
return false
}
if (checkEmail(emailID.value)==false){
emailID.value=""
alert("Invalid Email Adderess");
emailID.focus()
return false
}
alert('valid');
return true
}
</script>
<form name="form" method="post" onSubmit="return ValidateEmail()">
Enter an Email Address : <input type="text" name="email" size="30"><br>
<input type="submit" name="Submit" value="Submit">
</form>
</html>
我的代码没有问题,但不知何故我无法理解正则表达式/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ 的含义。我不明白正则表达式的每一部分是什么意思。请赐教。
【问题讨论】:
-
您认为这令人困惑...试试这个:ex-parrot.com/pdw/Mail-RFC822-Address.html。使用正则表达式验证电子邮件很棘手......请参阅:programmers.stackexchange.com/questions/78353/…
-
注意 - 如果一个长的无效电子邮件被传递给它,这个正则表达式将冻结您的浏览器窗口。见jsfiddle.net/ocqn35sm
-
/^\w+([\.\+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3}) +$/.test(电子邮件)
-
^^^^^^^^^^ 修改为包含“+”字符...值得。这允许 bradchesney79+spamtag@gmail.com 格式的电子邮件地址通过。 ...gmail 允许您将“+anything”文本块附加到您的 gmail 帐户名称。这不是 gmail 独有的功能。不,我不知道哪些服务允许它的详尽列表。
标签: javascript regex email-validation