<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JS高效關(guān)鍵字搜索---轉(zhuǎn)

      原文地址: http://www.rzrgm.cn/index-html/archive/2013/04/17/js_keyword_match.html

       

      重點關(guān)注評論中的代碼..

       

      var treeSearch = {
          makeTree: function(strKeys) {
              "use strict";
              var tblCur = {},
                  tblRoot,
                  key,
                  str_key,
                  Length,
                  j,
                  i
                  ;
              tblRoot = tblCur;
              for ( j = strKeys.length - 1; j >= 0; j -= 1) {
                  str_key = strKeys[j];
                  Length = str_key.length;
                  for ( i = 0; i < Length; i += 1) {
                      key = str_key.charAt(i);
                      if (tblCur.hasOwnProperty(key)) { //生成子節(jié)點 
                          tblCur = tblCur[key];
                      } else {
                          tblCur = tblCur[key] = {};
                      }
                  }
                  tblCur.end = true; //最后一個關(guān)鍵字沒有分割符
                  tblCur = tblRoot;
              }
              return tblRoot;
          },
          search: function(content, tblRoot) {
              "use strict";
              var tblCur,
                  p_star = 0,
                  n = content.length,
                  p_end,
                  match,  //是否找到匹配
                  match_key,
                  match_str,
                  arrMatch = [],  //存儲結(jié)果
                  arrLength = 0   //arrMatch的長度索引
                  ;
        
              while (p_star < n) {
                  tblCur = tblRoot; //回溯至根部
                  p_end = p_star;
                  match_str = "";
                  match = false;
                  do {
                      match_key = content.charAt(p_end);
                      if (!(tblCur = tblCur[match_key])) { //本次匹配結(jié)束
                          p_star += 1;
                          break;
                      }else{
                          match_str += match_key;
                      }
                      p_end += 1;
                      if (tblCur.end === true) //是否匹配到尾部  //找到匹配關(guān)鍵字
                      {
                          match = true;
                      }
                  } while (true);
        
                  if (match === true) { //最大匹配
                      arrMatch[arrLength] = { //增強(qiáng)可讀性
                          key: match_str,
                          begin: p_star - 1,
                          end: p_end
                      };
                      arrLength += 1;
                      p_star = p_end;
                  }
              }
              return arrMatch;
          }
      };



      使用實例:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      function test(strContent, strKeys) {
          var arrMatch,
              tblRoot = treeSearch.makeTree(strKeys),
              t = new Date();
        
        
          arrMatch = treeSearch.search(strContent, tblRoot);
        
          console.log("time is: " + (new Date() - t) + "mm");
        
          console.log(arrMatch);
      }
      var s = (function() {
          var Things = [' ', '\n', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
          var s = "";
          for (var i = 1000000; i >= 0; i--) {
              s += Things[parseInt(Math.random() * Things.length) % Things.length]
          };
          return s;
      })()
      test(s, ["abc", "efge", "fun", "tree"]);
      posted @ 2013-04-24 10:52  RY一步一個腳印  閱讀(394)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲a∨国产av综合av| 国产二区三区不卡免费| 国内自拍视频在线一区| 久久碰国产一区二区三区| 伊人热热久久原色播放WWW| 成年女人午夜毛片免费视频| 成人欧美一区在线视频| 国产精品一码在线播放| 日本无遮挡吸乳呻吟视频| 久久精品国产亚洲av久| 无码人妻丝袜在线视频| 国产在线精品一区二区三区直播 | bt天堂新版中文在线| av在线播放国产一区| 日韩中文字幕综合第二页| 97免费在线观看视频| 国产首页一区二区不卡| 久久精品国产亚洲av麻豆小说| 国产永久免费高清在线| 艳妇臀荡乳欲伦69调教视频| 久久人搡人人玩人妻精品| 国内不卡一区二区三区| 国产真人性做爰久久网站| 免费无码国模国产在线观看| 熟女系列丰满熟妇AV| 国产69精品久久久久99尤物| 蜜桃亚洲一区二区三区四| 亚洲精品一二三四区| 国产无遮挡又黄又爽不要vip软件 国产成人精品一区二区秒拍1o | 少妇高潮喷水久久久影院| 国产成人AV男人的天堂| 自拍偷在线精品自拍偷免费| 成人午夜免费无码视频在线观看| 综合色一色综合久久网| 久久免费偷拍视频有没有| 亚洲国产成人av毛片大全| 国产精品无卡毛片视频| 国产美女精品自在线拍免费| 亚洲国产精品综合久久2007| 九色综合国产一区二区三区| 国产成人AV在线免播放观看新|