@Scorpiored88

Как правильно использовать регулярные выражения для replace?

Что-то никак не получается у меня с этой регуляркой :(

Вот допустим есть строка:
var str = "my name is {name} and I live in {place}"

Если заменять один элемент:
str.replace(/{name}/g, 'lola')
то как бы все ОК, но как заменить два и больше одновременно?
Но чтобы использовать всего раз replace то есть не так:
str.replace(/{name}/g,  'lola').replace(/{place}/g , 'city')
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Примерно так:
var str = 'my name is {name} and I live in {place}';
var dict = {
  name: 'lola',
  place: 'city'
};
var result = str.replace(/{(\w+)}/g, function(s, tag) {
  return dict[tag];
});


mdn.io/replace
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
str.replace(/{name}|{place}/g, found => {
  switch(found) {
    case '{name}': return 'lola';
    case '{place}': return 'city';
  }
});
Ответ написан
@Myateznik
Всё это в наше время на самом деле можно и упростить (js harmony/es6):
var name = 'lola';
var place = 'city';
var str = `my name is ${name} and I live in ${place}`;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы