关于javascript:如何在innerHTML.replace中使用变量I.e innerHTML.replace(/ var / g,’var)

How to use a variable with innerHTML.replace I.e innerHTML.replace(/var/g, 'var)

本问题已经有最佳答案,请猛点这里访问。

我让它仅用以下代码替换一个实例:

1
2
3
4
5
var someString = ['He', 'Test', 'of'];
var x = 0;
for (i = 0; i < 2; i++) {
    document.body.innerHTML = document.body.innerHTML.replace(''+someString[i]+'', 'text');
}

如何让它替换所有实例?我试过这个:

1
2
/+someString[x]+/g
/'+someString[x]+'/g

因为使用普通字符串,/test/g可以解决当字符串是变量字符串时如何格式化它的问题。


使用new RegExp从字符串创建正则表达式:

1
2
3
4
for (i = 0; i < 2; i++) {
    var re = new RegExp(someString[x], 'g')
    document.body.innerHTML = document.body.innerHTML.replace(re, 'text');
}

试试这个

1
2
3
4
5
var someString = ['He', 'Test', 'of'];
var x = 0;
for (i = 0; i < 2; i++) {
    document.body.innerHTML = document.body.innerHTML.replace(new RegExp(someString[i],"g"), 'text');
}


您可以使用新的regexp

1
2
3
4
5
6
7
8
9
10
var Replace = ['He', 'Test', 'of'];
for (var = 0;i<String.length;i++) {

var search = Replace[i];
var regEx = new RegExp(search,"g");
var replaceMask = 'text';

var result = 'Test He of where Test he of so'.replace(regEx, replaceMask);
document.body.innerHTML = result;
}