电话号码正则表达式C#连字符

时间:2014-09-29 06:28:41

标签: c# regex

我需要在C#中验证电话号码。

模式应包含10位数(必填),-可用于模式中的任何位置。

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

这就是我的尝试:

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

3 个答案:

答案 0 :(得分:3)

如果您想使用确切的有效10位数电话号码(不多于,不能少于),您可以使用此正则表达式

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

答案 1 :(得分:2)

这样做:

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

在上面,你检查数字是否只包含连字符和数字,然后检查数字的长度是否为10.它还使用短路,这是更好的。

我不确定语法,但一定是它。

答案 2 :(得分:0)

您可以使用以下正则表达式来检查输入是否正好是10位数。

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

DEMO