我是 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})+$/
的意思。我不明白正则表达式的每一部分是什么意思。请赐教。
最佳答案
两个正斜杠/.../包含一个正则表达式。
前导 ^ 和尾随 $ 分别匹配输入字符串的开头和结尾。也就是说,整个输入字符串应与此正则表达式匹配,而不是输入字符串的一部分。
\w+ 匹配 1 个或多个单词字符(a-z、A-Z、0-9 和下划线)。
[.-] 匹配字符 。要么 -。我们需要使用 .代表 .作为 。在正则表达式中具有特殊含义。\被称为转义码,它恢复了后面字符的原始字面意义。
[.-]?匹配 0 次或 1 次出现的 [.-]。
同样,\w+ 匹配 1 个或多个单词字符。
([.-]?\w+)* 匹配 0 次或多次出现的 [.-]?\w+。
子表达式\w+([.-]?\w+)* 用于匹配电子邮件中 @ 符号之前的用户名。它至少以一个单词字符(a-z、A-Z、0-9 和下划线)开头,后跟多个单词字符或 .要么 -。然而,一个。 or - 后面必须跟一个单词字符(a-z、A-Z、0-9 和下划线)。即字符串不能包含“..”、“--”、“.-”或“-.”。有效字符串的示例是“a.1-2-3”。
@匹配自身。
同样,子表达式\w+([.-]?\w+)* 用于匹配电子邮件域名,其模式与上述用户名相同。
子表达式 .\w{2,3} 匹配一个 .后跟两个或三个单词字符,例如“.com”、“.edu”、“.us”、“.uk”、“.co”。
(.\w{2,3})+ 指定上述子表达式应出现一次或多次,例如,".com"、".co.uk"、".edu.sg "等
关于javascript - 了解使用 JavaScript 进行电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017052/