Используйте regularexpressionValidator, чтобы ограничить количество слов?

StackOverflow https://stackoverflow.com/questions/1526881

Вопрос

Я хочу использовать asp.net regularexpressionValidator, чтобы ограничить количество слов в текстовом поле. (RegularexPressionValidator является моим предпочтительным решением, поскольку оно будет выполнять проверки как клиентской, так и на стороне сервера).

Итак, каким образом будет правильная регуляция, чтобы поместить в regularexpressionvalidator, который будет считать слова и обеспечивать соблюдение слова? Для, скажем, 150 слов.

(NB: я вижу это этот вопрос Аналогично, но данные ответы также полагаются на код, такой как Split (), поэтому я не думаю, что кто -либо из них может подключиться к regularexpressionValidator, поэтому я снова спрашиваю)

Это было полезно?

Решение

С ^ а также $ является неявно устанавливается с regularexpressionValidators, используйте следующее:

(\S*\s*){0,10}

0 здесь допускает пустые строки (более конкретно 0 слов), а 150 - это максимальное количество слов, которые нужно принять. Отрегулируйте их по мере необходимости, чтобы увеличить/уменьшить количество принятых слов.

Вышеупомянутая регуляция не-середина, поэтому вы получите более быстрое совпадение стихов, которые заданы в вопросе, который вы ссылаетесь. (\b.*\b){0,10} жадный, поэтому, когда вы увеличиваете количество слов, вы увидите снижение производительности.

Другие советы

Вот краткая ссылка для регулярных выражений:http://msdn.microsoft.com/en-us/library/az24scfc.aspx

Вы можете использовать этот сайт для проверки выражений:http://regexpal.com/

Вот мой пример Regex, который работает как с минимальным, так и с максимальным количеством слов (и исправляет ошибку с помощью ведущего расстояния):

^\s*(\S+\s+|\S+$){10,150}$

Проверьте этот сайт:

http://lawrence.ecorp.net/inet/samples/regexp-validate.php#count

его javaScript Regex, но очень похоже на ASP.NET

Это что -то вроде этого:

( b [a-z0-9]+ b.*) {4,}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top