首页 > 解决方案 > 如何使用 asp.net 正则表达式验证器限制具有特定格式的文本框

问题描述

我有绑定到 asp.net 正则表达式验证的文本。我希望字符的最大长度为 13,并且希望具有类似的格式xx/xxxxx-xxxx

这是有效的格式

33/34567-1
33/12345-12
33/12345-123
33/12345-1234

我试过这个

<asp:TextBox ID="txt1" runat="server" OnTextChanged="txt1_TextChanged" class="textNormal" MaxLength="13" Width="100"></asp:TextBox> (xx/xxxxx-xxxx)
                    <br />
                    <asp:RegularExpressionValidator ID="regexValidator1" runat="server"
                     ErrorMessage="Must be in format xx/xxxxx-xxxx" ValidationExpression="\d\d\/\d\d\d\d\d-\d{4}$"
                    ControlToValidate="txt1">Must be in format xx/xxxxx-xxxx</asp:RegularExpressionValidator>

但它没有按我的意愿工作。当我键入时33/45678-12,它会引发验证错误。Last part after 之后只有一个字符-是强制性的。

如何解决这个问题?

标签: asp.netregex

解决方案


您可以将 5 位数字缩短到\d{5}最后匹配 1-4 位数字,使用\d{1,4}它仍然会有 MaxLength="13"

ValidationExpression="\d\d\/\d{5}-\d{1,4}$"

推荐阅读