我正在尝试针对RegEx验证电话号码。
我得到了这个答案:
Regular Expression for Phone Number
定义用于验证以下电话号码的表达式:+44(0)1234 123456
我把它从JS移植到C#,是
var regexPhone = new Regex(@"^(?!([^-]*-){5})(\+\d+)?\s*(\(\d+\))?[- \d]+$");
这样可行,但验证器也适用于允许为空白的电话号码字段,例如:传真(不是每个人都有这些老式设备之一)。
如何更改此选项以允许空白,以及验证上述数字?
编辑:下面的答案适用于上面的数字,但它没有成功:+ 44(0)20 1234 1234.我还能为此添加其他内容吗?
答案 0 :(得分:4)
只需在最后添加|^$
:
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*$");
答案 1 :(得分:0)
我已经尝试过它并且有效。
<asp:TextBox runat="server" ID="testInput"></asp:TextBox>
<asp:RegularExpressionValidator ValidationExpression="aa|^$"
runat="server" ControlToValidate="testInput"></asp:RegularExpressionValidator>