文本字段

时间:2015-07-01 10:27:13

标签: c# asp.net regex

我有一个文本字段,我希望验证是否以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>

这不起作用,但我想要这样的东西。

2 个答案:

答案 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})$