我正在寻找一个正则表达式只接受这个数字而不是任何其他格式。
123-456-7890
我试过这个但是也接受了差异格式。
Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
答案 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对象。