正则表达式只允许这种格式123-456-7890

时间:2017-05-25 12:35:36

标签: regex regex-negation

我正在寻找一个正则表达式只接受这个数字而不是任何其他格式。

123-456-7890

我试过这个但是也接受了差异格式。

Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");

1 个答案:

答案 0 :(得分:1)

您可以使用

Regex regexPhoneNumber = new Regex(@"\A[0-9]{3}-[0-9]{3}-[0-9]{4}\z");

它将接受一个以3位开头的字符串,然后是-,然后是3位数,-,然后是4位数字,后跟字符串位置的最后一位。

<强>详情:

  • \A - 字符串开头
  • [0-9]{3} - 3个ASCII数字
  • - - 连字符
  • [0-9]{3} - 3位数
  • - - 再次连字符
  • [0-9]{4} - 4位数
  • \z - 字符串的最后一部分(没有最后的换行符可以跟随$锚点的情况)。

请注意,如果您想使用\d而不是[0-9]缩短模式,并且仍匹配仅ASCII数字,请将RegexOptions.ECMAScript选项传递给Regex对象。