Замена строки свойством объекта - PullRequest
0 голосов
/ 24 марта 2020

У меня есть строка

var str="{name:'qwer',age:24,gender:'male'}"

, и у меня есть объект с таким же свойством

var object = {name : zxcvb}

При сопоставлении свойства (name) объекта я хочу перезаписать значение свойства внутри строки со значением из объекта. Желаемый результат:

newString = "{name:'zxcvb',age:24,gender:'male'}"

Пожалуйста, дайте мне знать, если вам нужны какие-либо разъяснения. Можем ли мы достичь этого с помощью регулярных выражений?

1 Ответ

1 голос
/ 24 марта 2020

Вы можете перебрать объект, создав RegExp из key и подставив value в соответствие:

let str = "{name:'qwer',age:24,gender:'male',aname:'xyz',namey:'pqr'}";
const obj = {
  name: 'zxcvb'
};

for (let [key, value] of Object.entries(obj)) {
  const regex = new RegExp(`\\b${key}\\s*:\\s*'[^']+'`);
  str = str.replace(regex, `${key}:'${value}'`);
}
console.log(str);
...