usdglander
@usdglander
Yipee-ki-yay

Как провести подстановку в шаблон строки на js?

Добрый день.
В очень слаб, но иногда приходится что то править и дописывать.
Как то некоторое время назад мне попадался метод, буквально в одну строчку, который позволял в строках вида
string = 'Меня зовут {name} и мой возраст {age}';
производить замену из объекта
user = {name: 'Lander', age: 33};
Вроде что бы было со строкой сначала через .split, а потом через join. Но вот как именно не помню, а сам додумать не могу.
Подскажите простое и изящное решение, пожалуйста.
  • Вопрос задан
  • 1245 просмотров
Решения вопроса 4
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
https://jsfiddle.net/pu4wzv49/
const user = {name: 'Lander', age: 33};
with(user){
	console.log(`Меня зовут ${name} и мой возраст ${age}`);
}
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
RegExp.template = /{(.*?)}/g;

String.prototype.process = function(data) {
	return this.replace(RegExp.template, (entry, word) => data[ word ]);
}

string = 'Меня зовут {name} и мой возраст {age}';
user = {name: 'Lander', age: 33};

string.process( user ); // 'Меня зовут Lander и мой возраст 33';
Ответ написан
Orkady
@Orkady
Front-End Padawan
let str = 'Меня зовут {name} и мой возраст {age}';
const user = {name: 'Lander', age: 33}

const interpolateProperties = (string, object) => {
  for(let prop in object) {
    if(user.hasOwnProperty(prop)) {
      string = string.replace(`{${prop}}`, `${user[prop]}`);
    }
  }
  return string;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы