测试字符串中的多个单词
Test for multiple words in a string
我有一个这样的字符串:
var str = "FacebookExternalHit and some other gibberish";
现在我有一个字符串列表来测试它们是否存在于str
中。以下是数组格式:
var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"];
搜索str
并查看是否存在任何bots
值的最快和/或最短方法是什么?Regex是好的,如果这是最好的方法。
使用join
可以执行:
var m = str.match( new RegExp("''b(" + bots.join('|') + ")''b", "ig") );
//=> ["FacebookExternalHit"]
我不知道regex一定是实现这一目标的方法。查看Array.prototype.some()
var str = "FacebookExternalHit and some other gibberish";
var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"];
var isBot = bots.some(function(botName) {
return str.indexOf(botName) !== -1;
});
console.log("isBot: %o", isBot);
常规的for
循环甚至更快:
var str = "FacebookExternalHit and some other gibberish";
var bots = ["FacebookExternalHit", "LinkedInBot", "TwitterBot", "Baiduspider"];
var isBot = false;
for (var i = 0, ln = bots.length; i < ln; i++) {
if (str.indexOf(bots[i]) !== -1) {
isBot = true;
break;
}
}
console.log("isBot: %o", isBot);
相关文章:
- 如何在Javascript中从字符串中提取某些单词
- 如何在PHP中获取特定的字符串单词
- 对字符串使用IndexOf来挑选某些单词
- 如何替换数据属性中的特定字符串单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 我如何从字符串中选出第一个单词的第一个字母,然后再选出第二个单词
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 类别自动完成jQuery中的单词级自定义筛选器,而不是子字符串
- 测试字符串中的多个单词
- 正则表达式以更改字符串中的某些单词
- 输出包含3个单词的字符串中的前2个单词
- Geoplugin字符串结果为德语单词/语言
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 查找数组中最长的单词/字符串
- 使用 jQuery 在大写字母中制作特定的单词(字符串)
- 在 javascript 中使用嵌套的 for 循环返回单词字符串中重复最多的字母
- JavaScript RegEx新手-从三个单词字符串中选择中间单词
- 使用javascript确保给定的单词(字符串)都是大写字母
- 判断多单词字符串是否包含单词