Проблема с регулярным выражением диапазона слов - PullRequest
0 голосов
/ 15 сентября 2009

Я использую регулярное выражение для ограничения слов, вводимых в текстовое поле, до 250-500 слов.

(((^\s*)*\S+\s+)|(\S+)){250,500}

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

Вот страница, на которой находится форма, если вы хотите попробовать ее самостоятельно:

http://mlknew.timpecoraro.com/dreamers-community/win-a-dream/

Сайт работает под управлением Wordpress с плагином cforms, поэтому я могу использовать только регулярные выражения для проверки.

Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 15 сентября 2009

Как насчет

^\s*(\S+\s+){250,499}\S*$

Сначала будет привязана строка для поиска в начале и конце строки. Затем необязательно сопоставлять пробелы (в случае, если строка начинается с некоторого). Затем сопоставьте 249-499 повторений (один или несколько непробельных символов) + (один или несколько пробельных символов, включая разрывы строк). Затем сопоставьте необязательный кусок непробельных символов, чтобы получить значение 500 (но также не сбой, если текст содержит пробел в конце).

0 голосов
/ 15 сентября 2009

почему бы вам не попробовать

(\w+\s+){250,500}

с использованием str-word-count было бы лучше, если бы на вашем WordPress-хостинге версия php превосходила 4.3.

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