使用字符串的JavaScript正则表达式?

使用字符串的JavaScript正则表达式?,javascript,regex,Javascript,Regex,如何在JS正则表达式中使用字符串作为“find” i、 e: 现在,我想用一个空字符串(“)替换数组find的所有元素,使用正则表达式。我该怎么做 我的意思是,在循环中使用.replace(/find[I]/g,”)是行不通的 那么,我该怎么做呢 谢谢 您可以使用内置的RegExp对象动态创建regex var find = ["a", "b", "c"]; var re = new RegExp( find.join("|"), "g" ); // <- /a|b|c/g var str

如何在JS正则表达式中使用字符串作为“find”

i、 e:

现在,我想用一个空字符串(
)替换数组find的所有元素,使用正则表达式。我该怎么做

我的意思是,在循环中使用
.replace(/find[I]/g,”)
是行不通的

那么,我该怎么做呢


谢谢

您可以使用内置的RegExp对象动态创建regex

var find = ["a", "b", "c"];
var re = new RegExp( find.join("|"), "g" ); // <- /a|b|c/g
var string = "abcdefghijkl";

string = string.replace(re, "");

alert(string); // <- defghijkl
​
var find=[“a”、“b”、“c”];

var re=new RegExp(find.join(“|”)g”)// 可以使用内置的RegExp对象动态创建regex

var find = ["a", "b", "c"];
var re = new RegExp( find.join("|"), "g" ); // <- /a|b|c/g
var string = "abcdefghijkl";

string = string.replace(re, "");

alert(string); // <- defghijkl
​
var find=[“a”、“b”、“c”];

var re=new RegExp(find.join(“|”)g”)// 为什么不;你就不能用它吗

.replace(find[i], "*")

为什么不;你就不能用它吗

.replace(find[i], "*")

如果需要一次运行一个表达式(例如,如果表达式太复杂,无法直接连接到一个表达式中),可以在循环中创建Regexp对象,如下所示:

var find = ["a", "b", "c"];
var string = "abcdefghijkl";

for (var i = 0; i < find.length; i++) {
  var re = new Regexp(find[i], "g");
  string = string.replace(re, "");
}
var find=[“a”、“b”、“c”];
var string=“abcdefghijkl”;
for(var i=0;i
如果您需要一次运行一个表达式(例如,如果表达式太复杂,无法直接关联到一个表达式),可以在循环中创建Regexp对象,如下所示:

var find = ["a", "b", "c"];
var string = "abcdefghijkl";

for (var i = 0; i < find.length; i++) {
  var re = new Regexp(find[i], "g");
  string = string.replace(re, "");
}
var find=[“a”、“b”、“c”];
var string=“abcdefghijkl”;
for(var i=0;i
不需要在这里使用包装参数-只要
RegExp(find.join(“|”)
就可以了。虽然这对这些简化的数组内容有效,但如果an项包含正则表达式字符而没有转义它们,则会有错误。@Jason在这种情况下,您可以使用类似preg_quote(来自php.js):
str=(str+“”).replace(/([\\.\+\*\?\[\^\]\$\(\)\{\\\\\=\!\\\\\\:])/g,\\$1')
不需要在这里使用包装参数-只要
RegExp(find.join(“|”)
就可以了。虽然这对这些简化的数组内容有效,但如果一个项目包含正则表达式字符而没有转义它们,它就会有错误。@Jason在这种情况下,您可以使用类似preg_quote(来自php.js):
str=(str+“”).replace(/([\\.\+\*\?\[\^\]\$\(\)\{\\\\\=\!\\\\\\:])/g,\\$1')