【问题标题】:How to replace few characters in string, if we know the prefix of the characters we want to replace in javascript [duplicate]如果我们知道要在javascript中替换的字符的前缀,如何替换字符串中的几个字符[重复]
【发布时间】:2021-01-21 01:43:20
【问题描述】:

如果我们已经知道这些字符的前缀,我想替换几个字符。前任: 如果我的字符串是

limit=100&launch_year=2016&

我想用

替换它

limit=100&launch_year=2017&

但是字符串是动态的,我们只知道launch_year,所以如果我只知道动态字符串中有launch_year,是否可以找到2016并将其替换为2017。

【问题讨论】:

    标签: javascript html css reactjs ecmascript-6


    【解决方案1】:

    字符串替换为正则表达式/(.*limit=100&launch_year=)\d{4}(.*)/

    捕获要替换的年份值周围的前缀和后缀,并用新年份重建字符串。

    const data = "limit=100&launch_year=2016&";
    
    const regex = /(.*launch_year=)\d{4}(.*)/;
    
    const replaceYear = (data, year) => data.replace(regex, `$1${year}$2`);
    
    console.log(replaceYear(data, "2017"));
    console.log(replaceYear(data, "2020"));

    【讨论】:

    • 嗨@drew-reese,我可以建议保持正则表达式更加通用,因为data 字符串似乎是一个查询字符串,其内容可能会有所不同?在这种情况下,我认为/(.*launch_year=)\d{4}(.*)/ 会更合适。
    【解决方案2】:

    您的输入似乎是一个查询字符串,所以我建议使用解析器然后更改它...

    const queryParams = new URLSearchParams('limit=100&launch_year=2016');
    queryParams.set('launch_year','2017');
    console.log(queryParams.toString() + '&' ); 
    // "limit=100&launch_year=2017&"
    

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 2020-09-14
      • 2016-05-30
      • 2020-12-19
      • 2019-02-16
      • 1970-01-01
      • 2021-06-17
      • 2012-10-05
      相关资源
      最近更新 更多