我的替换所有功能如下,它是commonHelper.js文件
exports.replaceAll = function (find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace);
}
然后我跟着
var commonHelper = require('./commonHelper');
var html_body = commonHelper.replaceAll('[[username]]', user_row.username, template_row.message_body);
html_body = commonHelper.replaceAll('[[forgot_pass_link]]', forgot_pass_link, html_body);
这里没有正确替换[[key]]部分。我应该改变什么才能解决这个问题?
答案 0 :(得分:6)
我不得不替换特殊字符。我更新了替换所有功能
exports.replaceAll = function (find, replace, str) {
var find = find.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
return str.replace(new RegExp(find, 'g'), replace);
}
答案 1 :(得分:0)
字符串模块中有一个replaceAll命令。
您可以在util.js中使用它:
var S=require('string');
exports.replaceAll=function(hay,rplfrom,rplto)
{
return S(hay).replaceAll(rplfrom,rplto).s;
};
答案 2 :(得分:0)
您可以使用拆分和联接作为替换全部。这消除了使用正则表达式特殊字符弄乱查找和替换的任何问题。例如:
>> "[boo].blah.[boo].blah".split("[boo]").join("(scare)")
"(scare).blah.(scare).blah"