正则表达式RegularExpressionValidator

时间:2012-06-29 12:07:54

标签: asp.net regex reg-expressionvalidator

很抱歉,如果这已经得到解答,但我在这里找不到。我知道它可能但对正则表达式知之甚少。我有一个ASP.NET项目,我想查看某个值的前两个字符是以GYBTJE开头,如果是,则触发a验证失败。

我在RegularExpressionValidator中的内容是:

/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/

非常感谢任何帮助。

由于 乔恩

4 个答案:

答案 0 :(得分:0)

这应该可以解决问题

string strRegex = @"/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/";

Regex re = new Regex(strRegex);
if (re.IsMatch(inputString))
    return (true);
else
    return (false);

答案 1 :(得分:0)

请记住[]是一个范围,并且不对字符应该出现的顺序作出规定。所以:

[GY]{2}不仅会匹配所需的'GY',还会匹配'GG'或'YY'。试试这个:

/^(GY|BT|JE)/

答案 2 :(得分:0)

简单任务 - 使用正则表达式^(GY|BT|JE)^(?:GY|BT|JE)

<script  runat="server">
  sub submit(sender As Object, e As EventArgs) 
    if Page.IsValid then 
      lbl.Text="OK"
    else 
      lbl.Text="NOT OK"
    end if
  end sub
</script>

<!DOCTYPE html>
<html>
  <body>
    <form runat="server">Enter text here:
      <asp:TextBox id="txtbox1" runat="server" />
      <br /><br />
      <asp:Button text="Submit" OnClick="submit" runat="server" />
      <br /><br />
      <asp:Label id="lbl" runat="server" />
      <br />
      <asp:RegularExpressionValidator 
        ControlToValidate="txtbox1"
        ValidationExpression="^(GY|BT|JE)"
        EnableClientScript="false"
        ErrorMessage="Error"
        runat="server" />
    </form>
  </body>
</html>

答案 3 :(得分:0)

我不确定我是否理解正确,但我猜你的表达方式是:

/^(GY|BT|JE)/

这将匹配以GY或BT或JE开头的所有值。

如果在另一方面你想允许所有不以BY或BT或JE开头的字符串,这将是

/^(?<!(GY|BT|JE)).*/