是否有可能在asp.net中验证控件但不需要它?

时间:2013-02-11 22:20:05

标签: asp.net regex validation

是否可以验证它是电话号码但不需要它?现在的方式,如果我不输入数字,它将抛出错误。我在某处读到你可以改变RegEx来做这件事,我试着将RegEx封装在(?:...?)

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

2 个答案:

答案 0 :(得分:2)

您的问题来自提交的面具。

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

试试这个RegEx

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

应使空掩码有效

答案 1 :(得分:0)

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

ValidationExpression="(?:(((\d{3}))|(\d{3}-))?\d{3}-\d{4})|((((_{3}))|(_{3}-‌​))?_{3}-_{4})"