1

テキスト文にキーワードが含まれているかどうかを確認する最良の方法は何ですか。100 個のキーワードがある可能性があります。

例えば:

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
var keywords = ["lorem", "sit", "elit", "sed do"];

キーワードのいずれかがテキストに含まれているかどうかを確認する最良かつ最速の方法はですか。

ところで、そのGoogleスクリプトには、私が見たことのない機能があるかもしれません:\

前もって感謝します

4

4 に答える 4

3
for(var i = 0; i <= keywords. length - 1; i++) {
  var a = new RegExp('\\b' + keywords[i] + '\\b', 'gi');
  if(a.test(text)) {
    alert('Match ! - ' + keywords[i]);
  }
}
于 2012-08-28T11:28:22.520 に答える
2
var text = "Lorem Ipsumdolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
var keywords = ["Lorem", "ipsum", "not there", "Sed do"];

for (var i in keywords) {
    var index = new RegExp("\\b" + keywords[i] + "\\b", "i");
    if (text.match(index)) {
        alert(keywords[i]);
        // do something
    }
}
于 2012-08-28T11:28:56.203 に答える
2

これらの行で何かを試してください。

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
var keywords = ["lorem", "sit", "elit", "sed do"];
var words = text.split(/[\s,]+/); //Add all other delimiters you want to include. 
for(var i in words){ 
   words[i] = words[i].toLowerCase(); 
}
for(var i in keywords){
  if(words.indexOf(keywords[i].toLowerCase()) != -1){
    Logger.log('Match found for ' + keywords[i]);
    break;
  }
}

複数の区切り記号で分割するためのこの投稿に感謝します

于 2012-08-28T11:33:52.633 に答える
0

このコードは、配列ではなくオブジェクトを使用してキーワードを格納すると、はるかに効率的になります。

var text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
var keywords = {"lorem" : 1, "sit": 1, "elit" : 1, "sed do" : 1};
var words = text.split(/[\s,]+/); //Add all other delimiters you want to include. 
for(var i in words) { 
   if (keywords[words[i].toLowerCase()]) { 
     Logger.log('Match found for ' + keywords[i]);
     break;
  }
}
于 2012-08-29T15:01:01.687 に答える