我試圖驗證一個字符串作爲電話號碼(數字和某些特殊字符)。我使用了一個現有的代碼片段:http://snippets.dzone.com/posts/show/597這似乎是正確的。但每次string.match(format)
返回null
,這導致顯示錯誤消息。驗證爲電話號碼
var format = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;
var string = jQuery(".validate_phone").val();
if (string.match(format) != true) {
// some error message
}
我已經檢查過,string
被填滿了哪個期望值。
以下值應該匹配:
339-4248
339-42-48
(095)3394248
(095)3394248
7 (095)3394248
7(095)3394248
7(095)3394248
7(095)3394248
其他所有內容都應顯示錯誤消息。
這段代碼有什麼問題?提前致謝!
更新:下面是測試情況http://labuschin.com/material/phone
什麼是「期望值」樣本? – 2010-01-22 09:15:43
你可以發表一些你做或不想匹配的例子嗎?馬上我看到國際號碼沒有正確處理。 – 2010-01-22 09:16:23
一些示例要匹配什麼以及哪些不會有幫助。正則表達式非常複雜。 – 2010-01-22 09:20:47