我将如何在replace()中传递ref变量?我试试下面的代码,b
var ref = "www.facebook.com";
fs.readFile('text.html','utf8', function (err, data) {
if (err) {
return console.log(err);
}
var result = data.replace(/href="'+ref+'"/g, 'href="changeRef"');
fs.writeFile('text.html', result, 'utf8', function (err) {
if (err) return console.log(err);
next();
});
})
答案 0 :(得分:0)
使用RegExp类而不是内联正则表达式。
data.replace(new RegExp('href="'+ref+'"', 'g'), ...)
但我建议您使用streams来完成工作而不是回调。它会是这样的:
const through2 = require('through2');
const fs = require('fs');
const writable = fs.createWriteStream('destPath');
fs
.createReadStream('path')
.pipe(new through2((data, enc, cb) => {
const chunk = data.toString();
chunk = chunk.replace(new RegExp('foo', 'g'), 'bar');
cb(null, chunk);
}))
.pipe(writable);