正则表达式不能防止错误的输入被处理

时间:2015-03-12 14:48:27

标签: c# asp.net regex

我正在尝试创建只接受2种电话号码输入的regex。电话号码输入是(5554446666)和(+15554446666),没有别的,所以这是我写的regex

Regex phoneNumberPattern = new Regex(@"^\s*(?:\+?(\d{1,3}))?(\d{7})");

问题是当我输入七位数字(4446666)时,它接受了它。

2 个答案:

答案 0 :(得分:1)

不要使+有条件 - 整个前缀组是有条件的,这是它应该是怎样的。制定+条件意味着您现在支持所有包含7-10个号码的电话号码。哦,并把$放在最后。

答案 1 :(得分:1)

这样的事情应该返回所需的电话号码:

(\+1\d{10})|(\d{10})