2011-10-24 63 views
-1

我無法在不同的國家/地區找到電話號碼的正則表達驗證模式,並且沒有多少時間嘗試自己寫,並希望正則表達式大師能夠提供幫助。在多個國家/地區的電話號碼驗證

我檢查喜歡regexlib的通常來源了,所以如果有人能幫助我會很感激與其中任何一個

我需要爲每個以下的獨立的電話號碼驗證表達式:

  • 德國
  • 美國
  • 澳大利亞
  • 新西蘭
  • 加拿大
  • 亞洲
  • 法國
+0

什麼是模式,你在哪裏與他們堅持,具體的東西將是好的 – V4Vendetta

+0

@Ranhiru,他也可以在多個步驟中做到,或者可能將它存儲在文件中的數組中,並遍歷它們。 – foxy

+0

您確定要以此方式限制嗎?你是否喜歡長號碼,國際號碼,分機號碼等? –

回答

1

格式here

編寫正則表達式不是微不足道的,但是如果指定規則,並不困難。

1

而不是做一個精心製作的正則表達式來匹配你的訪問者輸入他們的電話號碼的方式,嘗試一種不同的方法。取出電話號碼輸入並去掉符號。然後,正則表達式可以很簡單,只需檢查10個數字(例如美國數字)。然後,如果您需要以一致的格式保存電話號碼,請從10位數字中構建該格式。

本示例通過查找10位數字來驗證美國電話號碼。

protected bool IsValidPhone(string strPhoneInput) 
{ 
// Remove symbols (dash, space and parentheses, etc.) 
string strPhone = Regex.Replace(strPhoneInput, @」[-()\*\!]「, String.Empty); 

// Check for exactly 10 numbers left over 
Regex regTenDigits = new Regex(@」^\d{10}$」); 
Match matTenDigits = regTenDigits.Match(strPhone); 

return matTenDigits.Success; 
} 
1

電話號碼是一個數字,你想驗證那裏?

Here你可以看到不同的數字是怎樣的。

並沒有像亞洲這樣的國家,這是一個有多個國家的大陸。

+0

是的,我知道亞洲不是一個國家,任何表達方式都必須儘可能靈活以適應亞洲地區的變化。電話號碼有很多不同的格式,驗證程序是確保人們輸入有效的格式,而不僅僅是數字。 –

1

幾乎不可能獲得涵蓋所有國家的單一正則表達式。

我會去與[0-9+][0-9() ]* - 這只是允許任何數字開始(或「+」字符),然後任何數字或括號或空格的組合。


通常驗證任何進一步都不會有太大的用處。如果頁面的用戶希望通過電話聯繫,他們將輸入一個有效的電話號碼 - 如果沒有,那麼他們不會。

一個更好的方法來執行正確的電話號碼,並消除最簡單的misksying是要求輸入號碼兩次 - 那麼用戶可能至少檢查它!

+0

或者詛咒並按Ctrl-C Ctrl-V。 – CodesInChaos

+0

@CodeInChaos - 是的,但是像複製電子郵件一樣,如果重要的話它是正確的,這是一個小小的速度障礙。 –

+0

我正在尋找每個縣的正則表達式列表,而不是所有的縣。我沒有時間寫他們,我發現的質量不高,所以希望在這裏提出想法,而不必花時間寫他們 –