Используйте regularexpressionValidator, чтобы ограничить количество слов?
-
20-09-2019 - |
Вопрос
Я хочу использовать 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,}