如何使用.search()方法在字符串中搜索多个变量
How to search multiple variables in a string with the .search() method
我找到了这个解决方案:如何使用.search()方法搜索多个字符串?
但我需要使用几个变量进行搜索,例如:
var String = 'Hire freelance programmers, web developers, designers, writers, data entry & more';
var keyword1 = 'freelance';
var keyword2 = 'web';
String.search(/keyword1|keyword2/);
您可以使用RegExp
构造函数而不是文字来编写正则表达式。
String.search(new RegExp(keyword1+'|'+keyword2));
在正则表达式中使用字符串之前,您需要对字符串进行转义(除非您确信它们永远不会包含任何[
、|
等字符),然后构建一个RegExp
对象:
function escapeRegExp(string){
return string.replace(/([.*+?^${}()|'[']'/''])/g, "''$1");
}
var re = new RegExp( escapeRegExp(keyword1) + "|" + escapeRegExp(keyword2) );
String.search(re);
如果你有一组搜索词,你可以概括如下:
var keywords = [ 'one', 'two', 'three[]' ];
var re = new RegExp(
keywords.map(escapeRegExp).join('|') // three[] will be escaped to three'[']
);
String.search(re);
search
只返回第一个匹配的索引,不会再搜索。如果你想找到所有关键词的索引,你可以使用exec
代替:
var myRe = new RegExp(keyword1 + '|' + keyword2, 'g')
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = "Found " + myArray[0] + " at position " + myArray.index;
console.log(msg);
}
输出
在第5位找到自由职业者
在位置28处发现卷筒纸
DEMO
相关文章:
- 使用php在html中搜索硬编码的JavaScript变量
- td:包含变量中的搜索字符串
- 在记录数组搜索后追加变量和数组项
- 使用变量而不是静态字符串搜索数组
- Javascript项目通过变量数组进行搜索
- 使用变量搜索窗口中的属性使用'在'中;
- 在 Django 上下文变量上使用 Javascript 搜索算法
- 在搜索中突出显示关键字会破坏 URL 变量的传递
- Javascript多次搜索新的位置变量
- 在变量中搜索值..Javascript
- Angular 如何通过其$scope链搜索变量
- 如何使用变量选择要搜索的对象的属性
- 表单不发布变量/mySQL 查询不正确搜索
- 根据变量搜索 JSON 数组
- JSON - 搜索具有变量名称(未知)的键
- Javascript 搜索 LocalStorage 变量是否存在
- 使用脚本在代码中搜索变量,然后运行javascript
- 使用ElasticSearch搜索变量定义字段
- 用DOM搜索变量名
- 搜索变量