2014-09-29 64 views
4

我需要驗證C#中的電話號碼。電話號碼正則表達式帶連字符的C#

該模式應該包含10個數字(必選),-可以在模式中的任何位置使用。

  • 如1:
  • 例如2:98-765-432-10
  • 如3:-98-765-432-10-

這是我的嘗試:

Regex a = new Regex(@"^([0-9]{10}\-*)$") 
+0

你的意思是確切的10位? – 2014-09-29 06:31:14

+0

該模式應包含10位數字,可能包含或不包含連字符。 – 2014-09-29 06:33:08

回答

0

你可以使用下面的正則表達式來檢查,如果輸入了整整10數字或不。

^(?:-*\d-*){10}$ 

DEMO

2

這樣做:

string num = "98-765-432-10"; // any number 
if(Regex.IsMatch(num, "^[0-9-]+$") && num.Replace("-","").Length == 10){ 
    // do something 
} 

在上面,您檢查數字是否只包含連字符和數字,然後檢查數字的長度是否爲10.它也使用短路,這是更好的。

我不確定語法,但它必須是它。

2

如果要使用精確的驗證10位數字的電話號碼(而不是更多,而不是更少),你可以使用這個表達式

string pattern = "([\-]?\d[\-]?){10}";