2011-06-01 29 views
0

可能重複:
A comprehensive regex for phone number validation赦的JavaScript驗證了美國的電話號碼,並允許擴展(jQuery的允許)

也許一顆寬容的JavaScript解決方案只會確保只有合法的字符被允許。 (數字,破折號,句號,字母擴展

雖然環看起來最好,有沒有檢查有效字符一個簡單的正則表達式

+0

http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation/123666#123666 – sidyll 2011-06-01 12:40:19

回答

0

正則表達式只是javascript,而不是jQuery。你尋求的格式是什麼?在擴展中允許多少個字母?我可以look it up,但如果你願意的話,它會有很大的幫助。看起來從7到11位數字是允許的。

這是好的,允許用戶在3個或4個字符塊輸入電話號碼,因爲它是更容易爲他們讀,如:

914-499-1900 

914 499 1900 

或類似。如果您喜歡,請修剪空間進行驗證或存儲。

對於上述格式完全相同:

function testPhoneNumber(phoneNumber) { 
    var re = /^\d{3}[- ]?\d{3}[- ]?\d{4}$/; 
    return re.test(phoneNumber); 
} 

或者你可以刪除不必要的,但不允許的字符和測試剩下:

function testPhoneNumber(phoneNumber) { 
    var re = /^\d{10}$/; 
    return re.test(phoneNumber.replace(/[ -+]/g,'')); 
} 

但這些不允許擴展。如果提供格式,則正則表達式部分很容易。

+0

這不完全是我們使用的,但它跳躍開始我們在正確的方向。謝謝! – finneycanhelp 2011-06-03 00:34:04

1

您正則表達式:?\d|\.|\-

雖然技術上你想要的對面在行動>

$('input').blur(function() { 

    var value = $(this).val(); 
    $(this).val(value.replace(/[^\d\.\-]/g, '')); 

}); 

見小提琴 - - [^\d\.\-]所以你可以做一個替代http://jsfiddle.net/GspT4/

+0

有趣。我在jsfiddle中試過了,它很整潔! – finneycanhelp 2011-06-03 00:35:27