2011-03-10 69 views
0

我需要一個正則表達式,以美國手機以稍微不同的方式匹配。其實,在我的網頁上我有輸入文本框,我有地方正則表達式驗證和正則表達式來驗證999-999-9999中的郵政編碼。直到這裏一切都很好。稍後我們添加了MaskedEditor擴展器,以避免在手機號碼之間手動添加 - 。 ClearMaskOnLostFocus也設置爲false。所以每次在我們的文本框中輸入___-___-____。而且我的驗證器現在總是驗證它對付無效輸入。需要正則表達式爲美國手機格式

所以最後我想再說,我需要一個正則表達式,如果我的手機是一個有效的美國電話和也通過___-___-____,而不是兩個會斷的,將匹配..

[現有的正則表達式]

^[0-9]{3}[\-]{1}[0-9]{3}[\-]{1}[0-9]{4}$ 

回答

2

只需使用以下命令:

(<your current regex>)|(___-___-____) 
1

嘗試查看libphonenumber以獲取靈感或使用。它有你可以需要的大部分東西。

3

在Javascript中 - 在這裏:

/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/; 

它來自谷歌... http://www.zparacha.com/phone_number_regex/

這部分進行說明:

/^  = match must start with - no chars before 
\(?  = optional left brace 
(\d{3}) = 3 digits 
\)?  = optional right brace 
[- ]? = optional hyphen or space 
(\d{3}) = 3 digits 
[- ]? = optional hyphen or space 
(\d{4}) = 4 digits 
$/  = match must end here - no chars after 
0

PhoneFormat.com有一個JavaScript庫,將無論你有什麼樣的格式,你都可以隨便輸入數字,然後正確格式化。如果您通過___-___-____999-999-9999它將處理它就好了。