2012-08-24 66 views
-6

我的代碼有什麼問題?我找不到解決方案。Javascript電子郵件驗證不起作用

var re = "/^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/"; 

var email= document.getElementById("email").value; 

if (re.test(email) == false) { 
    document.getElementById("email").focus(); 
    return false; 
} 

雙引號引起了問題,謝謝! 我不能投票,因爲我的名氣:-(

+0

爲什麼這麼複雜? ['see here']](http://stackoverflow.com/search?q=email+validation+javascript&submit=search) – diEcho

+3

你告訴我們*有什麼問題。你有錯誤嗎?它不正確驗證嗎?它是否通過了所有的輸入,還是它沒有通過任何有效的電子郵件,還是它給出了誤報/否定? – JJJ

+0

複製http://stackoverflow.com/questions/46155/validate-email-address-in-javascript – yogi

回答

0

像蘇雷什建議,應刪除你的周圍正則表達式字符串引號(「)。 所以,你的第一行應該是:

var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 

我公司生產下文一個工作例如:

<script> 
function test() 
{ 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9] {1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    var email= "[email protected]"; 

    if (re.test(email) == false) { 
    alert("invalid email address"); 
    return; 
    } 
    alert("valid address"); 
} 
</script> 
<button onclick="test()">TEST</button> 
-1

達讓我們試着這個曾經被智能工作對我來說

function IsEmail(email) { 
       var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
       return regex.test(email); 
      } 

if(!IsEmail(mailString)){ 
       $("#somediv").text(" Email should be valid "); 
       return false; 
       } 
+0

人 - 問題是「**我的**代碼出了什麼問題」。它不是*「如何驗證電子郵件地址」。 – JJJ

+0

@jim竹..刪除「」你的正則表達式字符串。 – 2012-08-24 09:43:18