1

是否可以验证它是电话号码但不需要它?现在的方式如果我不输入数字,它将引发错误。我在某处读到您可以更改正则表达式来执行此操作,我尝试将正则表达式包含在 (?:...?)

<asp:TextBox runat="server" ID="tbCompanyFax" Width="99%" Text='<%# Eval("CompanyFax")%>'></asp:TextBox>
<ajaxTK:MaskedEditExtender runat="server" ID="maskCompanyFax" AutoComplete="false" TargetControlID="tbCompanyFax" Mask="(999)999-9999" ClearMaskOnLostFocus="false" />
<asp:RegularExpressionValidator ID="regCompanyFax" runat="server" ControlToValidate="tbCompanyFax" ErrorMessage="Invalid Fax number" ValidationExpression="(?:((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4})?" Display="None"></asp:RegularExpressionValidator>
4

2 回答 2

2

您的问题来自提交的掩码。

您可以在 RegEx 中允许使用掩码。这将省去编写自定义验证器的麻烦。

试试这个正则表达式

(?:((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4})|(((\(\s{3}\) ?)|(\s{3}-))?\s{3}-\s{4})

应该使空掩码有效

于 2013-02-12T05:35:36.357 回答
0

我调整了@nunepascal 的 RegEx,它完全符合我的要求。再次感谢!

ValidationExpression="(?:(((\d{3}))|(\d{3}-))?\d{3}-\d{4})|((((_{3}))|(_{3}-‌​))?_{3}-_{4})"
于 2013-02-12T16:27:04.007 回答