Поместите ваши замены на карту, после замены установите map[x]
на x
:
let lecture = "Math";
let name = "Ex01";
let date = "2018-10-05";
let repl = {
'L': lecture,
'N': name,
'D': date
};
let file_string = "L_N_L_D"
let result = file_string.replace(/[LND]/g, x => {
let r = repl[x];
repl[x] = x;
return r;
});
console.log(result)
Помимо решения рассматриваемой проблемы, это также значительно упрощает функцию замены (например, добавление новых заполнителей).
При этом,реальным решением вашей проблемы было бы следовать совету @ marsze и использовать однозначные заполнители, такие как {...}
, и в этом случае все предприятие становится просто
repl = {...as before...}
result = subject.replace(/{(.+?)}/g, (_, x) => repl[x])