2014-06-19 16 views
0

我正則表達式的電子郵件上射擊似乎並不奏效,它不火,正則表達式不是用戶的形式

窗體上的驗證通過,即使用戶只輸入一個。

這裏是我的代碼:

var a = ["txtTitle", "txtSurname", "txtEmail", "txtPostCode"]; 

$.each(a, function (index, value) { 
    if (sMsg == "") { 


     if ($("#" + value).val().trim() == "") { 
      var sText = $('td:first', $($("#" + value)).parents('tr')).text(); 

      sMsg = "Please enter a " + sText; 

      $("#" + value).focus(); 
     } 
    } 
}); 

if (sMsg == "") { 
    if ($("#txtPhone").val().trim() == "" && $("#txtMobile").val().trim() == "") { 
     sMsg = "Please enter a phone or mobile number"; 
     $("#txtPhone").focus(); 
    } 
} 

if (sMsg == "") { 
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if (!regex.test($("#txtEmail").val())) { 
     sMsg = "Please enter a valid email address"; 
    } 
} 

break; 
+0

最後一個if - 你在'.'之前忘了反斜槓嗎? '[a-zA-Z0-9 _。+ - ]' – maja

+0

「sMsg」從哪裏來?它是否包含一個字符串? (你應該總是使用'==='而不是'==') – maja

+1

@maja:在這裏不需要反斜槓。在一個字符類中,'.'只匹配一個點。 –

回答

0

現在我已經解決了這個,原來有在電子郵件領域的主要驗證,以檢查它是否包含一個值,我只是去掉這個和它的工作

修改這一行:

var a = ["txtTitle", "txtSurname", "txtEmail", "txtPostCode"]; 

var a = ["txtTitle", "txtSurname","txtPostCode"]; 
相關問題