Использовать RegularExpressionValidator, чтобы ограничить количество слов? - PullRequest
4 голосов
/ 06 октября 2009

Я хочу использовать ASP.NET RegularExpressionValidator, чтобы ограничить количество слов в текстовом поле. (RegularExpressionValidator - мое любимое решение, потому что оно будет выполнять проверки как на стороне клиента, так и на стороне сервера).

Так что же было бы правильным Regex для добавления в RegularExpressionValidator, который будет подсчитывать слова и обеспечивать ограничение слов? Например, 150 слов.

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

Ответы [ 3 ]

5 голосов
/ 06 октября 2009

Поскольку ^ и $ неявно установлены с помощью RegularExpressionValidators , используйте следующее:

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

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

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

1 голос
/ 15 ноября 2012

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

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

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

^\s*(\S+\s+|\S+$){10,150}$
0 голосов
/ 06 октября 2009

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

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

это регулярное выражение JavaScript, но очень похоже на asp.net

это примерно так:

(\ Ь [а-z0-9] + \ Ь. *) {4}

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