2010-11-10 135 views
2

下面的正則表達式的Javascript正則表達式是不工作的國際電話號碼,可以讓多達15位:國際電話號碼

^[a-zA-Z0-9-().\s]{10,15}$ 

需要怎樣調整?

+1

你確定「國際電話號碼」不超過15位數字? – Tomalak 2010-11-10 18:15:14

+0

我只是按照我的客戶的指示。 – Amen 2010-11-10 18:18:09

+0

那麼你的客戶指示你遵循什麼規則? – 2010-11-10 18:19:51

回答

3

嘗試添加反斜線:

var unrealisticPhoneNumberRegex = /^[a-zA-Z0-9\-().\s]{10,15}$/; 

現在它仍然不是非常有用,因爲你讓標點符號的任意數目太多。真的,驗證這樣的電話號碼—特別是如果你想它真的爲工作國際電話號碼—可能是一個無望的任務。我建議你去@BalusC建議的。

+0

這工作謝謝! – Amen 2010-11-10 18:39:58

6

您可能會發現下面的正則表達式更加有用,它基本上是第一條所有有效的特殊字符其中international phone number可以包含(空格,括號,+-.ext),然後計算,如果至少有7個數字(有效本地號碼的最小長度)。

function isValidPhonenumber(value) { 
    return (/^\d{7,}$/).test(value.replace(/[\s()+\-\.]|ext/gi, '')); 
} 
0

然後計數是否至少有7位數字(有效本地號碼的最小長度)。

世界上任何地方的最短本地號碼只有兩到三位數字。

有很多國家沒有區號。

有幾個知名的地方有3位數的國家代碼和4位數的本地號碼。

謹慎地將您的限制降至6或5;以防萬一。