如何验证电话号码或在文本字段中允许使用RegEx的空白?

时间:2011-02-17 13:04:01

标签: c# regex

我正在尝试针对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.我还能为此添加其他内容吗?

2 个答案:

答案 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>