C# 正则表达式不阻止处理错误的输入
我正在尝试创建一个只接受两种电话号码输入的C# 正则表达式不阻止处理错误的输入,c#,asp.net,regex,C#,Asp.net,Regex,我正在尝试创建一个只接受两种电话号码输入的regex。电话号码输入是(5554446666)和(+15554446666),没有其他输入,因此这是我写的regex Regex phoneNumberPattern = new Regex(@"^\s*(?:\+?(\d{1,3}))?(\d{7})"); 问题是,当我只输入了七位数字(4446666)时,它接受了。不要使+有条件-整个前缀组都是有条件的,这就是它应该的方式。使+有条件意味着您现在支持7-10个号码的所有电话号码。哦,把$放在末尾
regex
。电话号码输入是(5554446666)和(+15554446666),没有其他输入,因此这是我写的regex
Regex phoneNumberPattern = new Regex(@"^\s*(?:\+?(\d{1,3}))?(\d{7})");
问题是,当我只输入了七位数字(4446666)时,它接受了。不要使
+
有条件-整个前缀组都是有条件的,这就是它应该的方式。使+
有条件意味着您现在支持7-10个号码的所有电话号码。哦,把$
放在末尾。这样的东西应该会返回所需的电话号码:
(\+1\d{10})|(\d{10})
可能重复一百万个不同的正则表达式问题。你试过做一个测试吗?谢谢,前三个都没有注意这个问题。