用于在输入时匹配文本的Javascript

Javascript for matching text while typing

本文关键字:文本 Javascript 输入 用于      更新时间:2023-09-26

基本上,我需要一个代码,不断检查有多少次一个特定的字符串出现在文本区域内每次用户键入一个字母。

  <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>

当前的代码,我只返回一个,即使我有多个匹配。

使用正则表达式和全局

匹配
cText.match(/abc/g).length

//测试

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

你可以简单地在你的字符串上使用split:

 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);
 }