我在javascript中遇到了替换功能的问题。
"demo text?for test".replace(new RegExp("text?for", 'g'), "text for");
它的返回输出是“demo text?for test”。
我想,我错过了一些东西,但我不知道。
以下是我在我的应用程序中使用的函数
var replaceAll = function (targetString, search, replacement) {
return targetString.replace(new RegExp(search, 'g'), replacement);
};
replaceAll("This is my favorite video https://www.youtube.com/watch?v=n3MPiLq0fKc", "video https://www.youtube.com/watch?v=n3MPiLq0fKc", "http://d-d.co/4eDED")
输出是“这是我最喜欢的视频https://www.youtube.com/watch?v=n3MPiLq0fKc”
答案 0 :(得分:1)
如果您将正则表达式作为/
中包含的字符串提供并且正确转义了特殊字符,则代码可以正常工作,如下所示:
var replaceAll = function(targetString, search, replacement) {
return targetString.replace(new RegExp(search, 'g'), replacement);
};
console.log(replaceAll("This is my favorite video https://www.youtube.com/watch?v=n3MPiLq0fKc", /video https:\/\/www\.youtube\.com\/watch\?v=n3MPiLq0fKc/, "http://d-d.co/4eDED"))