2011-07-11 21 views
4

我有這個腳本使用正則表達式來檢查表單字段包含一個有效的電子郵件地址。請從申報解釋我請解釋這個電子郵件驗證的正則表達式:

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

沒有分號?無黨派 –

回答

9

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

/ =開始表達
^ =匹配的字符串必須從這裏開始,只有從這裏開始
\w =任何字(字母,數字,下劃線)
+ =匹配前面的表達式至少一次,無限次數
[] =匹配括號內的任意字符,但只匹配一個
\+\. =匹配文字+.
\w =另一字
- =匹配文字-
* =匹配以前的表達零或無限次
@ =匹配文字@符號
() =使一切圓括號內的一組(並使其可引用)
[] =另一個字符集
\w- =匹配任何字或文字-
+ =另一1 to infinity量詞
\. =匹配另一個字面.
* =另一0 to infinity量詞
\w+ =匹配一個字至少一次
[\w-]*\. =匹配單詞或破折號至少爲零,然後是文字.
() =另一組
[a-z]{2,4} =匹配lowe rcase字母的至少2倍,但不超過4次
| =「或」(不匹配管)
\d+ =匹配至少1位
$ =所述字符串的末尾
/ =結束一個表達
i =測試字符串的情況下 nsensitive方式

或者你可以嘗試this awesome link。你知道,無論如何。

2

emailfilter.test(e.value)

emailfilter是一個正則表達式對其中您在文本字段中輸入的e.value的得到測試。

如果通過正則表達式比電子郵件有效。

2

這是一個打破測試爲有效RFC 5322的e-mail地址。

它不能處理引用的用戶部分,國際化域名或TLD(其中包含4個以上的字符)(例如.museum,.travel)。

與此同時,它錯誤地允許在其中包含前導或尾隨-的域名標籤。

請勿使用它!

相關問題