Ограничение количества слов в тегах - PullRequest
2 голосов
/ 06 мая 2011

Проект, над которым я сейчас работаю, - это профессиональный сетевой сайт, работающий на BuddyPress / Wordpress. Одной из функций, которые мы добавили в профиль каждого пользователя, является текстовая область для тегов, например, профессиональные интересы и личные интересы. Пользователям предлагается хранить теги в 1-3 словах и разделять их запятыми (например, «катание на горных велосипедах, вино, вязание крючком»). Тем не менее, у нас есть $ &% ^ @ # глупых пользователей, которые считают, что этот район предназначен для написания эссе, например: «Мне нравится одевать своих кошек и танцевать голыми под записи Motley Crue во время поисков путевых предложений на байдарках», а не просто пишу "коты, пестрый крю, путешествуй". [Headslap.]

Несмотря на наличие четких инструкций о том, что такое тег, а о чем нет, пользователи все еще не знают. Мы решили попробовать ограничить вводимые пользователем слова. Есть ли хороший способ проверить строку, разделенную запятыми, а затем вывести всплывающее окно или другое предупреждение, говорящее: «Эй, пустышка, теги не могут быть длиннее 3 слов!»? Я нашел несколько фрагментов javascript, которые допускают ограничения символов, но ничего, что могло бы разделить ввод и разделить слова между запятыми.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Конечно.Поместите строку в массив и затем посчитайте, сколько вхождений.

$interests = explode(",", $_POST['interests']);<br> $total = count($interests);

explode разделит строку textarea в массив.Затем вы можете подсчитать, сколько элементов в массиве и пощечины по мере необходимости!

1 голос
/ 06 мая 2011

Используйте метод .split() в JS, например:

var str = "My really long annoying tag, my tag, good tag, lol";
var tags = str.split(",");
for(var tag in tags) {
    if(tags[tag].split(" ").length > 3) {
       alert("HEY DUMMY, '" + tags[tag] + "' is too long!!");
    } 

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