我有两个数组,一个用于案例,另一个用于b案例。我希望bodyTags字符串由一个或多个不同的arr1项目替换为arr2中具有相同索引的项目。
以下代码不起作用。如果您可以修复它或建议我如何使用jQuery实现预期的效果,这将真正帮助我。
var arr1 = ["1a", "2a", "3a", "4a", "5a", "a6", "7a", "8a", "9a"];
var arr2 = ["1b", "2b", "3b", "4b", "5b", "6b", "7b", "8b", "9b"];
var bodyTags = 'something a1 got funcky a6';
for (var i = 0; i < arr1.length; i++) {
bodyTags = bodyTags.replace(/arr1[i]/gi, arr2[i]);
}
答案 0 :(得分:2)
在正则表达式中,arr1[i]
将从字面上理解。如果您想拥有动态表达式,则必须使用RegExp
:
bodyTags.replace(new RegExp(arr1[i],'gi'), arr2[i]);
答案 1 :(得分:1)
可能是这个吗?
for (var i = 0; i < arr1.length; i++) {
myregexp = new RegExp(arr1[i], "gi");
bodyTags = bodyTags.replace(myregexp, arr2[i]);
}
答案 2 :(得分:1)
我相信这就是你需要的
var arr1 = ["1a", "2a", "3a", "4a", "5a", "a6", "7a", "8a", "9a"];
var arr2 = ["1b", "2b", "3b", "4b", "5b", "6b", "7b", "8b", "9b"];
var bodyTags = 'something 1a got funcky a6';
for (var i = 0; i < arr1.length; i++) {
var re = new RegExp(arr1[i],"gi");
bodyTags = bodyTags.replace(re, arr2[i]);
}
2件事: