这里我有一个MaskedEditExtender,其中一个验证器使用正则表达式。
它用8或9位数字验证电话号码:
<asp:TextBox Style="width: 135px" ID="txtTelefone" runat="server"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender
ID="MaskedEditExtender_Telefone"
TargetControlID="txtTelefone"
runat="server"
Mask="\(99\)9999NN9999"
OnInvalidCssClass="txt-TextBox-Error"
ValidateRequestMode="Enabled"
ErrorTooltipEnabled="True"
Filtered="-"
PromptCharacter=" "
ClearMaskOnLostFocus="false"/>
<ajaxToolkit:MaskedEditValidator
ID="MaskedEditValidator_Telefone"
runat="server"
ControlExtender="MaskedEditExtender_Telefone"
ControlToValidate="txtTelefone"
ValidationExpression="^\(\d\d\)\d\d\d\d+-\d\d\d\d$"
Display="Dynamic"></ajaxToolkit:MaskedEditValidator>问题是:正如您在regex中看到的那样,用户可以在“)”和“-”之间放置4或5个数字。
但是“面具”字段不允许。
我需要MaskedEditExtender停止哭泣,当我没有键入所有的字符,因为他们是不必要的。我所需要的只是验证我的字段的正则表达式。
MaskedEditExtender的存在只是为了给我一个面具,它允许我只输入数字,并且在乞讨中有一个(99)。它不需要验证任何东西。
发布于 2015-09-02 12:45:13
好吧,似乎在MaskedEditExtender中没有这样的功能允许您在掩码中放置比字符更少的内容,所以我做了一个小的解决方案:
我已经在掩码中放置了自动完成,调整了正则表达式,在字符串末尾接受一个空空间,并且每当我想要使用TextBox的值时都会对其进行微调。
ValidationExpression="^\(\d{2}\)\d{4,5}-\d{4} *$"中AutoComplete="true" AutoCompleteValue=""中txtTelefone.Text.Trim();中这样,所有未填充的字符都将被替换为字符串末尾的空格,regex将负责验证,Trim()将删除空格。因此,允许您使面具的长度可选。
发布于 2018-08-12 12:06:44
将ClearMaskOnLostFocus="true"设置为MaskedEditExtender。
https://stackoverflow.com/questions/32339452
复制相似问题