2011-11-22 106 views
0

可能重複:
Validate email address in Javascript?JavaScript驗證電子郵件的格式不正確接受電子郵件格式@ abcd.com.gmail,

我必須做的電子郵件格式驗證,我現在用的是在行下面的CODE限制特殊字符。

onkeypress="return AlphaNumericBox(event,this,'@._);" 

但現在的問題是我不有,例如確切格式的任何適當的驗證它像" @abcd.com.gmail,.. "也接受文本是否有任何JavaScript驗證此? 有什麼想法?

在此先感謝。

+0

見[這裏] [1] [1]:http://stackoverflow.com/questions/46155/validate-email-address-in-javascript – sym3tri

+2

用戶輸入無效或不正確的電子郵件地址的機會遠遠大於通過電子郵件地址格式的規則輸入無效的格式。檢查用戶是否正確輸入電子郵件地址的最佳(即唯一可靠的)解決方案是向該地址發送電子郵件並查看他們是否響應。 – RobG

+0

@ sym3tri:對於評論中的網址,使用下一個標記:'[text](url)'(當然沒有空格),例如[本](http://stackoverflow.com/questions/46155/validate-email-address-in-javascript) – abatishchev

回答

1
function CheckEmail(address){ 
    address=address.replace(/(^\s*)|(\s*$)/g, ""); 
    var reg=/([\w._-])[email protected]([\w_-])+(\.([\w_-])+){1,2}/; 
    var matcharr=reg.exec(address); 
    if(matcharr!=null){ 
     if(matcharr[0].length==address.length){ 
      return true; 
     } 
     return false; 
    } 
    return false; 
} 

eg: 
var sVal=" [email protected] "; 
var sVal2=" [email protected] "; 
console.log(CheckEmail("[email protected]")); //outpus true 
console.log(CheckEmail("@server.com")); //outpus false 
1

我建議您使用此功能。我已經測試過很多次了。

function validateEmail (emailAddress) { 
     var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
     return pattern.test(emailAddress); 
} 

現在,您可以輕鬆驗證任何電子郵件地址:

var isValid = validateEmail('[email protected]'); // returns true; 
isValid = validateEmail('@server.com'); // returns false;