2011-12-23 3 views
0

В принципе, мне нужен код, который постоянно проверяет, сколько раз определенная строка появляется в текстовом поле каждый раз, когда пользовательские ключи в письме.Javascript для сопоставления текста при вводе

<textarea name="t_update" cols="50" rows="5" id="t_update" style="width:30%" 
onKeyUp="check()" ></textarea> 

<script> 
    function check(){ 
     var cText = document.getElementById('t_update').value; 
     if (cText.match("abc")){ 
      //Do something 
     }else{ 
      //Do something else. 
     } 
     alert(cText.match("abc").length); 
    } 
</script> 

В текущем коде у меня есть только один, даже если у меня более одного совпадения. Любая помощь будет оценена по достоинству.

+0

[Это] (http://stackoverflow.com/q/8192076/814761) может вам помочь. – Purag

ответ

0

использование матча с регулярным выражением и глобальный

cText.match(/abc/g).length 

// Тест

cText = "aaabbbbcccabcabchalloabc" 

Firebug Console 
cText = "aaabbbbcccabcabchalloabc" cText.match(/abc/g).length 
>> 3 
0

Вы можете просто использовать разделение на вашей строке, как это:

function check(){ 
    var cText = document.getElementById('t_update').value, 
    matches = cText.split('abc').length-1; 

    if (matches){ 
    //Do something 
    }else{ 
    //Do something else. 
    } 
    alert(matches); 
} 
+0

раскол не то, что он хочет. лол. и это неправильно. если у вас есть «abc», вы получили [«abc»] (1 -1 - 0). ;-) –

+0

@huan son: на самом деле '' abc'.split ('abc') 'возвращает' ["", ""] ', поэтому он отлично работает. Относительно того, что хочет OP, я не совсем думаю, что вы можете это решить, но спасибо за то, что я считаю свой ответ не полезным, чтобы сделать ваш собственный взгляд лучше: s –

+0

О, да, я просто вижу, что в JS он возвращает массив полей 2. это меня беспокоит, если мой ответ хороший или нет. если вы ищете строки с разделом, я должен только сказать, что вы программируете с ужасным стилем. очевидно, что мы можем сделать свою собственную функцию и проверять каждый байт дальше и дальше, но это тоже не правильный стиль. задача: «проверить строку для сопоставлений». и теперь вы можете спросить себя, почему существует функция «match». если задача «разделить строку на х частей», то мы используем .split() ..... cheers xmas –

Смежные вопросы