我有这个脚本使用正则表达式来检查表单字段是否包含有效的电子邮件地址。请从声明解释我
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
谢谢
来源:
<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>
答案 0 :(得分:10)
/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
/
=开始表达
^
=匹配的字符串必须从此处开始,并且仅从此处开始
\w
=任何单词(字母,数字,下划线)
+
=匹配前一个表达式至少一次,无限次数
[]
=匹配括号内的任何字符,但只匹配一个字符
\+\.
=匹配文字+
或.
\w
=另一个字
-
=匹配文字-
*
=匹配前一个表达式零或无限次
@
=匹配文字@
符号
()
=使括号内的所有内容成为一个组(并使它们可引用)
[]
=另一个字符集
\w-
=匹配任何字词或文字-
+
=另一个1 to infinity
量词
\.
=匹配另一个文字.
*
=另一个0 to infinity
量词
\w+
=至少匹配一次单词
[\w-]*\.
=匹配字词或短划线至少0次,然后是文字.
()
=另一组人
[a-z]{2,4}
=匹配小写字母至少2次但不超过4次
|
=“或”(与管道不匹配)
\d+
=匹配至少1位数字
$
=字符串的结尾
/
=结束表达式
i
=以 i nsensitive方式
或者您可以尝试this awesome link。你知道,无论如何。
答案 1 :(得分:2)
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
是用于测试电子邮件地址的正则表达式。
阅读维基上的正则表达式: - http://en.wikipedia.org/wiki/Regular_expression
答案 2 :(得分:2)
emailfilter.test(e.value)
emailfilter是一个正则表达式,您在文本字段中输入的e.value正在接受测试。
如果通过正则表达式而不是电子邮件有效。
答案 3 :(得分:2)
网上有几个网站,您可以输入正则表达式并获得单词解释。其中一个是http://www.strfriend.com/。
编辑:此处有更多观看者:https://stackoverflow.com/questions/772594/regular-expression-explained-with-words。
答案 4 :(得分:2)
此代码只是通过给定的正则表达式检查输入的电子邮件地址的有效性,如果值无效 - 将向用户显示警报。
如果你对Regualar Expressions不是很清楚,那就有很多信息:
http://www.google.com.ua/search?aq=1&oq=regula&sourceid=chrome&ie=UTF-8&q=regular+expression
答案 5 :(得分:2)
对于有效的RFC 5322电子邮件地址,这是已损坏测试。
它不能处理引用的用户部分,国际化域名或其中包含4个以上字符的TLD(例如.museum
,.travel
)。
同时,它错误地允许其中包含前导或尾随-
的域名标签。
不要使用它!