Добрый день. Хочу сделать форматированную строку в JS. Смысл в том, чтобы заменять в строке
$1,
$2,
$n на соответствующие аргументы. Что-то вроде
printf
Проблема в том, что могут быть (теоретически) и
$1 и
$11. И первая замена затрёт вторую подстановку.
Сделал пока так, т.е. шаблон такой - {$1}:
function printf(pattern, ...params){
for (let i=0; i<params.length;i++){
let r = new RegExp(`\\{\\$${i+1}\\}`, "gm");
pattern = pattern.replace(r, params[i]);
};
return pattern;
};
Как вариант - делать обход с конца.
Может я изобретаю велосипед, и что-то подобное уже есть уже в JS?