我有一个文本字段,我希望验证是否以0开头,长度为10,否则为13。
我想知道我是否可以在函数中写入“^ 0 ...”之类的验证表达式。
我希望你能帮助我。
我在ASP.NET中编写代码,C#。
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="dsg" ErrorMessage="RegularExpressionValidator" ValidationExpression="[^0]{0-10},[^1]{0-13}" ControlToValidate="TextBox1"></asp:RegularExpressionValidator>
这不起作用,但我想要这样的东西。
答案 0 :(得分:2)
您的正则表达式[^0]{0-10},[^1]{0-13}
表示:
[^0]
- 匹配除0
(甚至是逗号){0-10},
- 匹配文字字符串{0-10},
(因为{...}
内的连字符)[^1]
- 匹配1
{0-13}
- 匹配文字{0-13}
字符串。如果您计划仅使用服务器端验证,则可以使用.NET正则表达式验证
如果以0开头,则长度为10,否则为13。 :
^(0)?(?(1)\d{9}|\d{13})$
请参阅demo
如果您还计划在客户端使用它,您将需要一个JavaScript正则表达式的味道,您不能使用条件:
^(?:0\d{9}|\d{13})$
请参阅another demo
答案 1 :(得分:1)
[^0]{0-10}
表示从0到10个字符不等于到0
。^
的含义不同在正则表达式的开头和之后。
以0
开头的10个字符的字符串的正则表达式为^0.{9}$
。
另一个是^[^0].{12}$
。
所以一起:^(0.{9}|[^0].{12})$