在提取的文本 JavaScript 中搜索关键字
search for keyword in extracted text javascript
所以我设法提取了一些文本,然后将其保存为变量以供以后使用,如何测试所述文本中的某些关键字?
这里有一个例子,checkTitle
是我提取的文本,我想在它里面搜索某些关键字,在这个例子中,用逗号分隔的单词compareTitle
。我想搜索字符串'5'
和'monkeys'
。
var checkTitle = "5 monkeys jumping on the bed";
var compareTitle = "5 , monkeys";
if (checkTitle === compareTitle) {
// ...
}
您可以使用正则表达式搜索字符串,如果字符串包含单词,则使用 test()
函数返回 true/false。
/(?:^|'s)(?:(?:monkeys)|(?:5))'s+/gi.test("5 monkeys jumping on the bed");
将返回 true,因为字符串包含单词 5 和猴子(在本例中为两者)。
请看我的例子:http://regexr.com/39ti7 使用网站的工具来分析正则表达式的各个方面。
如果您需要更改每次测试的单词,则可以使用以下代码:
function checkForMatches(){
var words = checkTitle.split(" , ");
var patt;
for (var i = 0; i < words.length; i++){
patt = patt + "(" + words[i] + ")|";
}
patt[patt.length-1] = "";
patt = new RegExp(patt, "i");
return patt.test(checkTitle);
}
将返回 true,并允许要检查的任何单词。它们必须像这样分开:
compareText = "word1 , word2 , word3 , so on , ...";
// ^^^notice, space-comma-space.
您可以在 if 语句中使用它,如下所示:
var checkTitle = "5 monkeys jumping on the bed";
var compareTitle = "5 , monkeys";
if (checkForMatches()){
//a match was found!
}
使用 String.prototype.contains()
方法,您可以在字符串中搜索子字符串。例如
"Hi there everyone!".contains("Hi"); //true
"Hi there everyone!".contains("there e"); //true
"Hi there everyone!".contains("goodbye"); //false
您也可以使用Array.prototype.indexOf()
来实现类似的效果:
("Hi there everyone!".indexOf("Hi") > -1) //true
("Hi there everyone!".indexOf("Hmmn") > -1) //false
但是,在此方法中,我们甚至不需要使用上述任何方法,因为.match()
方法将为我们完成所有操作:
要返回匹配关键字的数组,请使用 .match()
。它接受正则表达式作为参数,并返回与正则表达式匹配的子字符串数组。
var checkTitle = "5 monkeys jumping on the bed";
var compareTitle = "5 , monkeys";
/* ^^^
It is very important to separate each word with space-comma-space */
function getWords(str){ //returns an array containing key words
return str.split(" , ");
}
function matches(str, words){
var patt = "";
for (var i = 0; i < words.length; i++){
patt = (i > 0)? patt + "|" + "(" + words[i] + ")" : patt + "(" + words[i] + ")";
}
patt[patt.length-1] = "";
patt = new RegExp(patt, 'gi');
// ^ i makes it case-insensitive
return str.match(patt);
}
matches(compareTitle, getWords(checkTitle)); // should return ['5','monkeys']
您可以通过执行以下操作来检查是否存在匹配项:
if (matches(compareTitle, getWords(checkTitle))){
// matches found
}
如果这个答案比第一个更好,那就接受这个答案。寻求更多帮助,或者如果它不起作用。
相关文章:
- Javascript关键字搜索子类Div值
- 当在文本框中搜索关键字时,我会得到以前的结果作为输出
- 在UltraEdit中搜索关键字
- 从下拉列表中搜索并建议关键字
- javascript搜索数组,返回找到的关键字
- 根据完整的关键字突出显示搜索关键字的文本
- Javascript在正文文本中搜索关键字,如果找到,则重定向到特定的URL
- 在提取的文本 JavaScript 中搜索关键字
- 使用JavaScript突出显示“结果”中的“搜索关键字”
- 如何解析pdf文件的本地副本并使用javascript搜索关键字出现
- 检测谷歌即时搜索并从URL中提取搜索关键字
- Javascript:获取访问者's document.referrer中的搜索关键字来自谷歌搜索引擎
- 在正文中搜索关键字
- 在单击按钮时将选定的单选按钮值添加到搜索关键字
- 如何使用jquery在搜索结果中突出显示搜索关键字
- Javascript在HTML中搜索关键字,并用em标记包围它们
- 在文件中搜索关键字,然后记录行的其余部分
- 将搜索关键字保存到JavaScript中的文本文件中
- 正在JSON响应中搜索关键字
- 使用cookie数据作为网站搜索关键字