【问题标题】:Replacing a string with object property用对象属性替换字符串
【发布时间】:2020-07-04 15:13:56
【问题描述】:

我有一个字符串

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

我有一个具有相同属性的对象

var object = {name : zxcvb}

通过匹配对象的属性(name),我想用对象的值覆盖字符串内的属性值。所需的输出是:

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

如果您需要任何说明,请告诉我。我们可以通过正则表达式来实现吗?

【问题讨论】:

    标签: javascript node.js regex substring


    【解决方案1】:

    您可以遍历对象,从 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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      相关资源
      最近更新 更多