2015-12-30 321 views
-1

好吧,我的腳本有什麼問題,JShint正在拋出三行紅色代碼,說我在我的變量和我的if/else語句中有問題。我想驗證如果電話號碼是一個有效的美國電話格式javascript驗證電話號碼

$("#phone").focusout(function telephone() { 
    if(this.value === "" || this.value === null) { 
     $("#error_messages").text(""); 
     return false; 
    } else { 
     var re = \d{3}[\-]\d{3}[\-]\d{4}; 
     if(re.test(document.getElementById("phone").value)) { 
      $("#error_messages").text(""); 
      return true; 
     } else { 
      $("#error_messages").text("Phone Number* not a valid format xxx-xxx-xxxx"); 
      return false; 
     } 
    } 
}); 
+3

正則表達式需要/'。將其更改爲'/ \ d {3} [\ - ] \ d {3} [\ - ] \ d {4} /' – Rajesh

+0

這些錯誤是什麼? –

+0

因爲你在同一個元素上綁定焦點並且使用jquery作爲're.test(document.getElementById(「phone」).value)''到're.test($(this).val())'好。 –

回答

0

首先,你不需要爲閉合功能的名稱。其次,你沒有附上/..../的正則表達式。

var re = /\d{3}[\-]\d{3}[\-]\d{4}/; 
0

你應該試試這個。

$(function(){ 
 
    $("#phone").change(function telephone() {  
 
     if (this.value === "" || this.value === null) { 
 
     $("#error_messages").text(""); 
 
     return false; 
 
     } else {   
 
     if (/\d{3}[\-]\d{3}[\-]\d{4}/.test($(this).val())) { 
 
      $("#error_messages").text(""); 
 
      return true; 
 
      } else { 
 
      $("#error_messages").text("Phone Number* not a valid format xxx-xxx-xxxx"); 
 
      return false; 
 
      } 
 
     } 
 
     }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
 
<input type="text" id="phone" /> 
 
<span id="error_messages"></span>

0

這是http://tools.netshiftmedia.com/regexlibrary/#爲數字測試的表達式。將其更改爲/^\d{3}[\-]\d{3}[\-]\d{4}$/在你的JS代碼,並在該工具中/..../應用正則表達式的代碼

我申請

^\d{3}[\-]\d{3}[\-]\d{4}$ 

這是確定你的號碼: enter image description here

`/正則表達式中被定義