1
我正在寻找一个正则表达式来接受只有这个数字没有任何其他格式。正则表达式只允许这种格式123-456-7890
123-456-7890
我试过这个,但也接受差异格式。
Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
我正在寻找一个正则表达式来接受只有这个数字没有任何其他格式。正则表达式只允许这种格式123-456-7890
123-456-7890
我试过这个,但也接受差异格式。
Regex regexPhoneNumber = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
您可以使用
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
- 字符串的最后一个字符(最终的换行符不能跟随,如$
anchor的情况)。请注意,如果你想使用\d
而不是[0-9]
缩短模式,仍然匹配ASCII只有数字,传递RegexOptions.ECMAScript
选项的正则表达式对象。
\ d {3} - \ d {3} - \ d {4}'有什么问题? – ndn
它看起来像.NET,所以最好避免'\ d'。 –
@WiktorStribiżew,我不知道.NET和'\ d's有问题。你能分享一下吗? – ndn