2

我的全部替换功能如下,在 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]] 部分。我应该改变什么来解决这个问题?

4

3 回答 3

6

我不得不替换特殊字符。我更新的替换所有功能

exports.replaceAll = function (find, replace, str) {
  var find = find.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  return str.replace(new RegExp(find, 'g'), replace);
}
于 2013-08-19T07:23:53.290 回答
0

字符串模块中有一个 replaceAll 命令。

您可能可以在 util.js 中像这样使用它:

var S=require('string');
exports.replaceAll=function(hay,rplfrom,rplto)
{
    return S(hay).replaceAll(rplfrom,rplto).s;
};
于 2013-11-18T17:34:25.580 回答
0

您可以使用 split 和 join 作为全部替换。这消除了正则表达式特殊字符弄乱查找和替换的任何问题。例子:

>> "[boo].blah.[boo].blah".split("[boo]").join("(scare)")

"(scare).blah.(scare).blah"
于 2017-11-26T23:27:54.647 回答