Проверка Javascript разрешает максимум 3 запятых - PullRequest
5 голосов
/ 28 января 2012

Я хочу проверку Javascript, которая позволяет максимум 3 запятым в текстовом поле, чтобы пользователь мог ввести число или текст в формате

123,456,789,0000

означает, что разрешено 3 запятых (,), между запятыми может быть любое количество цифр / букв. Пользователь может выбрать ввод только 2 запятых, то есть 3 значения, но максимально допустимое количество запятых - 3 например a, bb, ddddd, eeeee (4 тега) a, cc, bbbbb (3 метки)

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

Ответы [ 2 ]

5 голосов
/ 28 января 2012
var txt = '123,456,789,0000';
if( /^([^,]*,){0,3}[^,]*$/.test( txt ) ){
    // good
}else{
    // bad
}

измените * на +, если хотите убедиться, что в строке нет двух запятых, например: 12,,345

0 голосов
/ 28 января 2012

Если у вас есть контроль на стороне сервера, я предлагаю выполнить проверку там.

Потому что если вы попытаетесь выполнить проверку на клиенте с помощью java-скрипта, его можно обойти, либо отключив java Script вместе, либо используя расширение FireBug Firefox, манипулируя или выполняя запрос вручную, обходя ваш javaпроверка скрипта в целом.

Но если вы действительно хотите выполнить какую-то проверку в javascript, вы можете сделать что-то вроде следующего:

Учитывая это поле ввода <input id="txtInput" type="text" />

Вы можете связать событие keyup (обратите внимание на людей, пытающихся вставить данные из буфера обмена, keyup не будет ловить их, если они сделают это через контекстное меню)

$('#txtInput').keyup(function(){
   //This splits up the string value of the text box into an array 
   //wherever a coma appears
   var tags = $(this).val().split(',');

   //These would be your tags, without the coma, count them to find out how many
   //the user tried to enter.
   if (tags.length > 4)
       alert('there is more than 4 tags');
});

Конечно, это только пример,но вы могли бы адаптировать идею к вашим потребностям.Вам не нужно связывать это с событием keyup, вы можете связать это с событием щелчка на кнопке отправки или чем-то еще, все зависит от ваших потребностей.

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