Регулярное выражение asp.net работает не так, как ожидалось - PullRequest
0 голосов
/ 16 марта 2010

У меня есть текстовое поле и валидатор регулярных выражений. Я хочу убедиться, что единственной разрешенной строкой, вводимой в текстовое поле, является «Все введено», «Что-то еще» или «Другая строка», в противном случае я хочу, чтобы отображалась ошибка.

Это регулярное выражение, которое у меня есть:

ValidationExpression="(^Anything Entered)$|(^Something Else)$ |(^Another String)$"

Однако, когда я ввожу предполагаемые допустимые строки, отображается ошибка. Я не могу понять, что не так с выражением. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 16 марта 2010

RegularExpressionValidator автоматически добавляет эти ^ и $. Просто используйте

"(Anything Entered|something Else|Another String)"
2 голосов
/ 16 марта 2010
"^(Anything Entered)|(Something Else)|(Another String)$"

Обратите внимание на использование ^ и $.
Хотя, как уже указывали другие, использование ^ $ здесь избыточно.

"(Anything Entered|Something Else|Another String)" просто отлично.

0 голосов
/ 16 марта 2010

(^Anything Entered)$|(^Something Else)$ |(^Another String)$

В регулярном выражении ^ соответствует началу строки, а $ соответствует концу строки.

Ваше регулярное выражение эквивалентно (^Anything Entered$)|(^Something Else$ )|(^Another String$). Он соответствует «Все введено» или «Другая строка», но не соответствует «Что-то еще», поскольку после конца строки не может быть пробела ($ ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...