在javascript / nodejs中搜索并替换所有内容

时间:2013-08-19 06:40:42

标签: javascript regex node.js

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

3 个答案:

答案 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"