我正在使用一个简单的javascript来读取文件,并替换输入文件中的几个变量,并将更新的文件写入输出文件中
我的输入文件有
IP {IPADDR}
子网{SMASK).
我一直在使用它,第二个变量不起作用。
var rFile = inputFile.replace(/IPADDR/g, '182.10.10.1' /SMASK/g, '255.0.0.0');
它仅更新IPADDR
,而不更新SMASK
。
有指针吗?
答案 0 :(得分:1)
您不能在.replace()
内使用多个值。您可以像这样将它们链接起来:
let inputFile = 'IP {IPADDR} Subnet {SMASK).';
var rFile = inputFile
.replace(/IPADDR/g, '182.10.10.1')
.replace(/SMASK/g, '255.0.0.0');
return rFile; // 'IP {182.10.10.1} Subnet {255.0.0.0).'
或者您可以创建一个功能来将来为您提供帮助:
// In the same file or an another.js
const replace = (text, data) => {
let replacedText = text;
Object.keys(data).forEach((key) => {
replacedText = replacedText.replace(new RegExp(key, "g"), data[key])
});
return replacedText;
}
// And your code
let inputFile = 'IP {IPADDR} Subnet {SMASK).';
const data = {
'IPADDR': '182.10.10.1',
'SMASK': '255.0.0.0',
}
const rFile = replace(inputFile, data); // 'IP {182.10.10.1} Subnet {255.0.0.0).'