我有美国电话号码的文本框。为此,我使用MaskedEditExtender和RegularExpressionValidator来检查用户是否以正确的格式输入了数字。以下是代码:
<ajax:MaskedEditExtender ID="meePhoneNumber" runat="server" Mask="999-999-9999" TargetControlID="tbComapnyPhoneNumber" MaskType="Number" ClearMaskOnLostFocus="false" AutoComplete="false" MessageValidatorTip="true" ErrorTooltipEnabled="true" />
<asp:RegularExpressionValidator ID="revCompanyPhone" runat="server" ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?" ControlToValidate="tbComapnyPhoneNumber" ErrorMessage="Please enter a valid phone number" Display="Dynamic" />
现在,当我保存数据时,它会验证文本框,即使它不是必需的字段验证器。当我将ClearMaskOnLostFocus更改为true时,即使我将etxtbox保留为空,它也会保存数据,但是当我将其更改为false时,它不会让我保存。
答案 0 :(得分:1)
强制验证器将掩码文本视为有效值:
ValidationExpression="(((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?)|(^___-___-____$)"