JavaScript检查一些文本中的多个关键字?
请问,什么是最好的方式来检查一些文本句子是否提供了一些关键字,可能有100个关键字 例如:JavaScript检查一些文本中的多个关键字?,javascript,google-apps-script,Javascript,Google Apps Script,请问,什么是最好的方式来检查一些文本句子是否提供了一些关键字,可能有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"]; 现在,什么是检查任何关键字
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 i=0;i
for(var i=0;i在这些行中尝试一些东西
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]);
}
}
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;
}
}
感谢您在多个分隔符上进行拆分请在这些行上尝试一些操作
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;
}
}
多亏了在多个分隔符上进行拆分,如果使用对象而不是数组来存储关键字,那么这段代码的效率将大大提高
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;
}
}
如果使用对象而不是数组来存储关键字,那么这段代码的效率将大大提高
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;
}
}
你的脚本很好,但你忘记了:“\\b”+关键字[i]+“\\b”
来匹配整个单词。我没有忘记,我是故意这么做的,因为我认为他也愿意匹配abcde
中的abc
。但这仍然没有错,至少可以给他一个开始的路径。我知道没有错:)但他想搜索并匹配他在问题中提到的整个单词。要编辑。很抱歉我注意力不集中,老板到处走动,很难回答问题。谢谢提醒。:)你的脚本很好,但你忘记了这一点:“\\b”+关键字[I]+“\\b”
匹配整个单词。我没有忘记,我故意这么做,因为我认为他也愿意在abcde
中匹配abc
。但它仍然没有错,至少可以给他一个开始路径。我知道它没有错:)但他想搜索并匹配他在问题中提到的整个单词。要编辑。很抱歉我注意力不集中,老板到处走动,很难回答问题。谢谢你的提醒。:)修复语法错误var-keywords=[“lorem”,“etc…”和if(words.indexOf(keywords[i].toLowerCase())!=-1){
修复语法错误。var-keywords=[“lorem”,“etc…”和if(words.indexOf(keywords[i].toLowerCase())!=-1){