我正在尝试创建一个工具,使我可以快速更新html文件中的多个文本字符串。我这样做是通过搜索具有特定ID的标签的内容,然后替换其文本内容。我有很多工作,但是我不确定如何启用它以将多个替换项写入文件。实际上,它只运行了我的最后一个替换项。
这就是我所拥有的:
var fs = require('fs')
fs.readFile('sample.html', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
var title1 = "boogers"
var text1 = "ronald mcdonald";
var result = data.replace(/<div id="text1">(.*)<\/div>/g, '<div id="text1">' + text1 + '</div>');
var result = data.replace(/<title>(.*)<\/title>/g, '<title>' + title1 + '</title>');
fs.writeFile('sample.html', result, 'utf8', function (err) {
if (err) return console.log(err);
});
});
在上面的代码中,它将替换标题的内容,而不是div标签的内容。我想这是一个非常基本的修复程序,但是我是Node js和javascript的新手。感谢您的帮助。
答案 0 :(得分:3)
您两次“创建”变量结果,并将替换项归因于数据两次。因此,在第二个属性中,您放宽了之前所做的替换。试试这个:
fs.readFile('sample.html', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
var title1 = "boogers"
var text1 = "ronald mcdonald";
var result = data.replace(/<div id="text1">(.*)<\/div>/g, '<div id="text1">' + text1 + '</div>');
result = result.replace(/<title>(.*)<\/title>/g, '<title>' + title1 + '</title>');
fs.writeFile('sample.html', result, 'utf8', function (err) {
if (err) return console.log(err);
});
});
答案 1 :(得分:0)
只需使用“ // g”全局方法
<body>
<div id="main">MAIN
<div id="parent">parent
<div id="child1">child1</div>
<div id="child2">child2</div>
<div id="child3">child3</div>
</div>
</div>
结果将为:ssssssssscccccsssssssssss