2017-08-16 61 views
2

我看到很多解決方案來驗證正則表達式的電話號碼......但我希望我的電話號碼中包含一些字符,例如+31(0)12如何使用正則表達式驗證電話號碼加號(+)和「(0)」?

如果您的字符串值爲+31(0)12-1234567。這是電話號碼的正確標記。你怎麼能通過使用Regex驗證?

我已經試過這樣:

Regex phonePattern = new Regex(@"\+\d{3}?(\0)\d*\-\d*"); 

什麼我錯了嗎?

其他例子是: +31(0)6-12345678+31(0)123-123456

+0

(0)在你的答案中也很重要... – user1531040

回答

6

我有這個問題太並沒有發現重複這裏SO以正則表達式的一些有加+標誌是一個電話號碼。

最後我格式化這個表達式自己:

Regex phonePattern = new Regex(@"\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-.)]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*"); 

See it here on regex 101

這將匹配:

+nnnnnnnnnn 
+nnn-nnn-nn 
nnnnnnnnnnn 
nnnn-nnnn-n 
(nnn)nnnnnn 
+(nnn)nnnnn 
+0

並且具體的測試如果這是在內容中:(0)?如果有空間, – user1531040

+0

會工作嗎? –

0

它應該是這樣的:+ \ d {1,3}( 0)\ d * - \ d *

您的示例不會繞過零和國家/地區代碼的括號可以是1到3位數字。

+1

@「+ \ d {1,3}(0)\ d * - \ d *」這會給出錯誤消息。我認爲你必須從一個\開始。 – user1531040

相關問題