替换文件中的多个变量

时间:2019-01-08 15:16:04

标签: javascript

我正在使用一个简单的javascript来读取文件,并替换输入文件中的几个变量,并将更新的文件写入输出文件中

我的输入文件有

IP {IPADDR}子网{SMASK).

我一直在使用它,第二个变量不起作用。

var rFile = inputFile.replace(/IPADDR/g, '182.10.10.1' /SMASK/g, '255.0.0.0');

它仅更新IPADDR,而不更新SMASK

有指针吗?

1 个答案:

答案 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).'