2010-03-08 274 views
1

在我的應用我想驗證的電話號碼,我怎麼能寫的電話號碼一樣正則表達式。電話號碼驗證?

040-23357399或04023357399 91-40-23357399或914023357399 08518-2814655或085182814655 91 -8518-2814655或9185182814655

這是我的電話號碼,我怎麼能寫這個

+1

你到目前爲止做了什麼?你有沒有看過網上的各種正則表達式網站?雖然有人會給你一個答案(因爲積分很好,回答問題很好),如果你先告訴我們你先試過什麼,那麼通常會更好,這樣你就可以從中學到一些東西,以便以後可以教別人。 – JasCav 2010-03-08 05:00:05

+1

Dupe:http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation和其他人。 – 2010-03-08 05:01:10

+0

而且還附近dup http://stackoverflow.com/questions/1547920/ – 2010-03-08 05:50:15

回答

2

驗證意味着拒絕,你的用戶會發現,惱人的。更好的選擇是由第一汽從字符串中的所有非數字字符,然後檢查長度和初始數字VS一些簡單的規則來接受盡可能:

  • 如果11位數字,並用1開始,剝去第一位數字。
  • 如果10位數字接受,如果它以2-9開頭。
  • 如果12-14位數字接受,如果以有效的國家代碼開頭。
  • 廢棄其他所有東西。

這比通過嘗試強制用戶轉換爲特定格式並使更簡單,更快速的驗證代碼更多。然後,只要重新顯示它,就可以很好地對其進行格式化。

+0

不錯的想法...但是,如果我們想在客戶端檢查它呢? – HotTester 2010-03-08 05:34:47

+0

@HotTester仍然剝離非數字並通過規則檢查。您可以編寫客戶端JavaScript以使用ASP.Net中的CustomValidator控件。 – 2010-03-08 05:46:47

1

爲了表達更指this

另一個去OD鏈接this

還要檢查這個正則表達式:

^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$