【发布时间】:2020-04-01 00:08:24
【问题描述】:
我有一个字符串原型,其代码如下:
String.prototype.replaceAll = function(str1, str2, ignore) {
return this.replace(
new RegExp(
str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"
):str2
)};
用法:
var a = "I am Javascript";
console.log(
a.replaceAll("am", "love")
); // => I love Javascript
但是当涉及到字符或单词的多次交换时,我必须多次运行原型才能实现。但是我想到了这样的事情:
var a = "I am Java";
console.log(
a.replaceAll(["am" , "Java"], ["love", "Javascript"])
); // => I love Javascript
那么你能帮我实现它吗?还是有其他选择?
【问题讨论】:
-
似乎无法同时替换所有对。用 One-by-one 重新实现你的函数
replaceAll。 -
这能回答你的问题吗? Replace multiple strings with multiple other strings。我应该在回答之前寻找这个骗子(我的错误)。
标签: javascript regex string