我提供了这个解决方案:How do you search multiple strings with the .search() Method?
但我需要使用多个变量进行搜索,例如:
var String = 'Hire freelance programmers, web developers, designers, writers, data entry & more';
var keyword1 = 'freelance';
var keyword2 = 'web';
String.search(/keyword1|keyword2/);
答案 0 :(得分:3)
您可以使用RegExp
constructor而不是文字组成正则表达式。
String.search(new RegExp(keyword1+'|'+keyword2));
答案 1 :(得分:1)
在正则表达式中使用它们之前,您想要转义字符串(除非您某些它们永远不会包含任何[
,{ {1}}等等,然后构建一个|
对象:
RegExp
如果您有一系列搜索字词,可以概括一下:
function escapeRegExp(string){
return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}
var re = new RegExp( escapeRegExp(keyword1) + "|" + escapeRegExp(keyword2) );
String.search(re);
答案 2 :(得分:0)