抱歉,如果这已经得到解答,但我在这里找不到。我知道它可能,但对正则表达式的了解非常有限。我有一个ASP.NET
项目,我想检查一个值的前两个字符是否以GY
, BT
,开头JE
,如果是则触发验证失败。
我现在在我的 RegularExpressionValidator 中拥有的是:
/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/
任何帮助将不胜感激。
谢谢乔恩
抱歉,如果这已经得到解答,但我在这里找不到。我知道它可能,但对正则表达式的了解非常有限。我有一个ASP.NET
项目,我想检查一个值的前两个字符是否以GY
, BT
,开头JE
,如果是则触发验证失败。
我现在在我的 RegularExpressionValidator 中拥有的是:
/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/
任何帮助将不胜感激。
谢谢乔恩
这应该可以解决问题
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);
请记住,这[]
是一个范围,并且没有规定字符应该出现的顺序。所以:
[GY]{2}
不仅会匹配所需的“GY”,还会匹配“GG”或“YY”。试试这个:
/^(GY|BT|JE)/
简单的任务 - 使用正则表达式^(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>
我不确定我是否理解正确,但我猜你的表达方式是:
/^(GY|BT|JE)/
这将匹配以 GY 或 BT 或 JE 开头的所有值。
另一方面,如果您希望允许所有不以 BY 或 BT 或 JE 开头的字符串,这将是
/^(?<!(GY|BT|JE)).*/