Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверка текста в input (https://javascript.ru/forum/events/32373-proverka-teksta-v-input.html)

maximus 14.10.2012 01:19

Проверка текста в input
 
Помогите реализовать следующее:
Есть форма с полем
<input name="name" type="text" id="name" value="" />

Можно ли как то сделать так:
Подсчитать сколько запятых в поле и если их меньше 10 тогда показывает окошко с сообщением?

Nekromancer 14.10.2012 02:14

if (value.split(',').length < 8) {
// show popup
}

cyber 14.10.2012 02:17

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<input type="text">
 <input type="button" value="go">   
    
    <script>

   
      
  var inp = document.body.children[0];    
   
   var bt =  document.body.children[1]  
      
    bt.onclick = function () {
      
      
    var value = inp.value;
      value = value.match(/,/g);
      
      if(value && value.length >= 10) return;
      
      
      alert("Запятых меньше 10");
      
    
    }

    </script>

  </body>
</html>

Nekromancer 14.10.2012 02:18

cyber,
рекулярка то накой?

cyber 14.10.2012 02:22

Цитата:

Сообщение от Nekromancer (Сообщение 209923)
cyber,
рекулярка то накой?

при таком содержание инпута
56765,6757657

ваш код вернет такой массив

["56765", "6757657"]

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<input type="text" value="2312,21312,123">
 <input type="button" value="go">   
    
    <script>

   
      
  var inp = document.body.children[0];    
   
   var bt =  document.body.children[1] ;
      
       alert(inp.value.split(",").length);
      
    bt.onclick = function () {
      
      
    alert(inp.value.split(",").length);
      
    
    }

    </script>

  </body>
</html>

Nekromancer 14.10.2012 02:27

cyber,
да неужели. А я думал массив из запятых.

Это делается так:
var MY_MAGIC_NUMBER = 10;
if (value.split(',').length < (MY_MAGIC_NUMBER + 1)) {
// show popup
}

cyber 14.10.2012 02:30

Цитата:

Сообщение от Nekromancer (Сообщение 209925)
cyber,
да неужели. А я думал массив из запятых.

Это делается так:
var MY_MAGIC_NUMBER = 10;
if (value.split(',').length < (MY_MAGIC_NUMBER + 1)) {
// show popup
}

угу 10 раз , а потом еще и сальто делает.
http://javascript.ru/String/split
Цитата:

Строка бьется по separator, при разбивании separator пропадает:

arr = "a,b,c".split(',') // массив ["a", "b", "c"]


Nekromancer 14.10.2012 02:33

cyber,
сарказм, не? В код посмотрите.

cyber 14.10.2012 02:39

Nekromancer,
и? я вижу строку в value которую метод split разбивает по зяпятыми, а про этот мараз я вообще промолчу
if (value.split(',').length < (MY_MAGIC_NUMBER + 1))

так как в моему случае записуеться в массив 10 запятых , а вашем все кроме запятых, а +1 для того что бы 100% "супер" код получился?
что бы закончить флуд , пример ниже все прекрасно доказывает!
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
<input value="111,222,333,444">
    <script>

var input = document.body.children[0];
      
var value = input.value;
      
      alert("Мой вариант:  "+value.match(/,/g));    
      alert("Ваш вариант:  "+value.split(","))


    </script>

  </body>
</html>

Nekromancer 14.10.2012 02:46

cyber,
Что он доказывает? Что надо поднимать регулярки для поиска запятых?


Часовой пояс GMT +3, время: 05:20.