C# 如何验证电话号码或允许在文本字段中使用RegEx空格?
我想用正则表达式验证一个电话号码 我得到的答案是: 它定义用于验证以下电话号码的表达式:+44(0)1234 123456 我已经把它从JS移植到C#了C# 如何验证电话号码或允许在文本字段中使用RegEx空格?,c#,regex,C#,Regex,我想用正则表达式验证一个电话号码 我得到的答案是: 它定义用于验证以下电话号码的表达式:+44(0)1234 123456 我已经把它从JS移植到C#了 var regexPhone=new Regex(@“^(?)([^-]*-){5})(\+\d+)\s*(\(\d+\)?[-\d]+$” 这是可行的,但验证器也适用于允许空白的电话号码字段,例如传真(不再是每个人都有一个老式的防伪设备) 我如何更改它以允许空白,以及根据上面的数字进行验证 编辑:下面的答案适用于上面的数字,但不适用于:+4
var regexPhone=new Regex(@“^(?)([^-]*-){5})(\+\d+)\s*(\(\d+\)?[-\d]+$”代码>
这是可行的,但验证器也适用于允许空白的电话号码字段,例如传真(不再是每个人都有一个老式的防伪设备)
我如何更改它以允许空白,以及根据上面的数字进行验证
编辑:下面的答案适用于上面的数字,但不适用于:+44(0)20 1234 1234。还有什么我可以添加的吗?只需在末尾添加一个^$
:
var regexPhone = new Regex(@"^(?!([^-]*-){5})(\+\d+)?\s*(\(\d+\))?[- \d]+$|^$");
编辑:既然您想要一个更宽松的正则表达式,在空格方面,只需插入\s*
:
var regexPhone = new Regex(@"^\s*(?!([^-]*-){5})(\+\s*\d+)?\s*(\(\s*\d+\s*\))?\s*[- \d]+\s*$|^\s*$");
只需在末尾添加一个|^$
:
var regexPhone = new Regex(@"^(?!([^-]*-){5})(\+\d+)?\s*(\(\d+\))?[- \d]+$|^$");
编辑:既然您想要一个更宽松的正则表达式,在空格方面,只需插入\s*
:
var regexPhone = new Regex(@"^\s*(?!([^-]*-){5})(\+\s*\d+)?\s*(\(\s*\d+\s*\))?\s*[- \d]+\s*$|^\s*$");
我试过了,效果很好
<asp:TextBox runat="server" ID="testInput"></asp:TextBox>
<asp:RegularExpressionValidator ValidationExpression="aa|^$"
runat="server" ControlToValidate="testInput"></asp:RegularExpressionValidator>
我已经试过了,效果很好
<asp:TextBox runat="server" ID="testInput"></asp:TextBox>
<asp:RegularExpressionValidator ValidationExpression="aa|^$"
runat="server" ControlToValidate="testInput"></asp:RegularExpressionValidator>
对于上面的数字,这是可行的,但是对于这个数字,它失败了:+44(0)20 1234 1234
。还有什么我可以补充的吗?问题已更新以反映。这对上面的数字有效,但对这个数字无效:+44(0)20 1234 1234
。还有什么我可以补充的吗?问题已更新以反映。