Вычитание регулярных выражений не реализовано в классе asp.net RegularExpressionValidator?

Вычитание класса регулярных выражений не реализовано в классе ASP.NET RegularExpressionValidator? Я боролся за то, чтобы заставить работать довольно сложное регулярное выражение, и отследил это до того факта, что вычитание классов, похоже, не реализовано в валидаторе ASP.NET, но находится в классе Regex.

Например: создайте страницу с текстовым полем и валидатором для этого текстового поля. Дайте валидатору следующее ValidationExpression: [1-4] [0-9- [5]]. Независимо от того, какой ввод я ввел, он не совпадает. Измените его на [1-4] [0-9], и он совпадает, но не исключает 5 в качестве второй цифры, как требуется.

Спасибо


person user1660189    schedule 10.09.2012    source источник
comment
Я получаю совпадение на 11 при использовании [1-4][0-9-[5]], и нет совпадения на 15, 43 и т. Д. Валидатор использует обычный механизм .NET Regex.   -  person Oded    schedule 10.09.2012
comment
Какую версию .NET framework вы используете, Одед? Кстати, 43 ДОЛЖНЫ совпадать!   -  person user1660189    schedule 10.09.2012
comment
Упс. Опечатка. Это должно было быть _1 _...   -  person Oded    schedule 10.09.2012
comment
возможный дубликат Использует ли RegularExpressionValidator другой вариант, кроме Regex?   -  person stema    schedule 10.09.2012


Ответы (2)


Проблема, похоже, связана с использованием регулярного выражения javascript (которое можно отключить), см. регулярное выражение-валидатор-использование-другой-аромат-, чем-регулярное выражение

Читайте предлагаемое решение.

person Paul Zahra    schedule 10.09.2012

Вы пробовали [1-4]([0-4]|[6-9])?

person Razor    schedule 10.09.2012
comment
У меня есть, и это моя работа. К счастью, я просто пытаюсь исключить одну или две цифры, а не группу букв и т. Д. Приведенный мной пример является довольно большим упрощением того, что я делаю, но идея есть. Спасибо! - person user1660189; 10.09.2012
comment
Почему у вас | в классе персонажей? То, что вы опубликовали, будет соответствовать 2|. - person Oded; 10.09.2012
comment
Спасибо, что указали на это @Oded. Я исправил ответ. - person Razor; 10.09.2012
comment
@VincePanuccio, нет необходимости в чередовании, просто удалите | из класса, как это [1-4][0-46-9] - person stema; 10.09.2012