Regex RegularExpressionValidator
Извините, если на этот вопрос уже был дан ответ, но я не смог найти его здесь. Я знаю, что это возможно, но очень мало знаю о Regex. у меня есть ASP.NET
проект, и я хотел бы проверить, если первые два символа значения начинаются с GY
, BT
, JE
и, если это так, вызвать сбой проверки.
На данный момент внутри моего RegularExpressionValidator есть:
/^(?i)[GY]{2}|^(?i)[BT]{2}|^(?i)[JE]{2}/
Любая помощь будет принята с благодарностью.
Спасибо Джон
4 ответа
Я не уверен, правильно ли я понимаю, но думаю, что ваше выражение будет:
/^(GY|BT|JE)/
Это будет соответствовать всем значениям, начинающимся с GY или BT или JE.
Если, с другой стороны, вы хотите разрешить все строки, которые не начинаются с BY, BT или JE, это будет
/^(?<!(GY|BT|JE)).*/
Помни что []
является диапазоном, и не делает никаких оговорок относительно порядка появления символов. Так:
[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>
Это должно сделать свое дело
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);