是否可以验证它是电话号码但不需要它?现在的方式,如果我不输入数字,它将抛出错误。我在某处读到你可以改变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>
答案 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})"