请解释这个电子邮件验证正则表达式:

use*_*618 5 javascript

我有这个脚本使用正则表达式来检查表单字段是否包含有效的电子邮件地址.请从声明解释我

var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
Run Code Online (Sandbox Code Playgroud)

谢谢

资源:

<script type="text/javascript">

/***********************************************
* Email Validation script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function checkmail(e){
var returnval=emailfilter.test(e.value)
if (returnval==false){
alert("Please enter a valid email address.")
e.select()
}
return returnval
}

</script>

<form>
<input name="myemail" type="text" style="width: 270px"> <input type="submit" onClick="return checkmail(this.form.myemail)" value="Submit" />

</form>
Run Code Online (Sandbox Code Playgroud)

roc*_*est 11

/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

/=开始一个表达式
^=匹配的字符串必须从这里开始,并且只在这里开始
\w=任何单词(字母,数字,下划线)
+=匹配前面的表达式至少一次,无限次数
[]=匹配括号内的任何字符,但只匹配一个
\+\.=匹配文字+.
\w=另一个单词
-=匹配文字-
*=匹配前一个表达式零或无限次
@=匹配文字@符号
()=使括号内的所有内容成为一个组(并使它们可引用)
[]=另一个字符集
\w-=匹配任何单词或literal -
+=另一个1 to infinity量词
\.=匹配另一个文字.
*=另一个0 to infinity量词
\w+=匹配一个词至少一次
[\w-]*\.=匹配一个词或短划线至少零次,然后是文字.
()=另一个组
[a-z]{2,4}=匹配小写字母至少2次但不超过4 times
|="或"(与管道不匹配)
\d+=匹配至少1位
$=字符串的结尾
/=结束表达式
i=在一种情况下测试字符串是一种敏感的方式

或者你可以尝试这个很棒的链接.你知道,无论如何.