2013-10-26 19 views
1

我有下面的腳本檢查,以確保電話號碼的表單字段包含10個digtis,帳戶爲連字符和()字符。我遇到的問題是很多時候人們會把這個電話號碼隔開 - 000 000 0000表單驗證 - Javascript刪除空間電話號碼

當腳本被調用時,它會拋出一條錯誤消息。我怎樣才能使用下面的腳本,但允許指定格式的空間000 000 0000而不會引發錯誤?

感謝您的幫助!

   function validateTel(telnum) { 
       if (telnum.match(/^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$/)) { 
       return true; 
       } else { 
       return false; 
       } 
       } 
+0

更好地設置您的文本框的最小和最大長度爲10,並做nt讓用戶輸入數字以外的任何東西,不需要符號或空格 –

回答

0

您可以使用此正則表達式匹配電話號碼

^\d{3}[ ]{0,1}\d{3}[ ]{0,1}\d{4}$ 

檢查這裏的解釋http://regex101.com/r/iG2fV4

樣品:

var telRegExp = /^\d{3}[ ]{0,1}\d{3}[ ]{0,1}\d{4}$/; 

console.log("1234567890".match(telRegExp)) 
console.log("123 456 7890".match(telRegExp)) 
console.log("123 4567890".match(telRegExp)) 
console.log("123456 7890".match(telRegExp)) 
console.log("a1234567890".match(telRegExp)) 

輸出

[ '1234567890', index: 0, input: '1234567890' ] 
[ '123 456 7890', index: 0, input: '123 456 7890' ] 
[ '123 4567890', index: 0, input: '123 4567890' ] 
[ '123456 7890', index: 0, input: '123456 7890' ] 
null 
0

如何使用錨點?

/^\d{10}$/ 

或者可能是這樣的正則表達式: -

/^\+?\d{2}[- ]?\d{3}[- ]?\d{5}$/ 

或者可能是這樣的正則表達式將覆蓋大多數情況下,以驗證電話號碼:

^(?:\+?\d{2}[ -]?\d{3}[ -]?\d{5}|\d{4})$ 

Regex Demo