【问题标题】:How to replace using regex?如何使用正则表达式替换?
【发布时间】:2021-03-01 06:29:00
【问题描述】:
var result = [{"figure figure watch?v="}, {"figure data watch?v="}]
console.log(result.replace(res=> res.('figure', 'ifigure', 'watch?v=' , 'embeded/')))

我想要结果 = [{"ifigure ifigure embeded/"}, {"ifigure data embeded/"}]

你能帮忙吗?

【问题讨论】:

  • 您可以使用 JavaScript 的替换,例如 str.replace("figure figure watch?v=", "ifigure ifigure embeded/");
  • 是的,但是数据将从数据库中获取。所以我不确定图总是可用的,所以我需要如果可用,然后将所有图替换为 ifigure 并观看?v= 嵌入/
  • [{"figure figure watch?v="}, {"figure data watch?v="}] 给出语法错误。你有什么实际的输入?是[ "figure figure watch?v=", "figure data watch?v=" ] 吗?
  • 是["图图手表?v=","图数据手表?v="]这个
  • 你需要检查数据是否可用 if(res){ //在这里做逻辑}

标签: javascript reactjs regex replace


【解决方案1】:

最简单的方法是使用带有正则表达式的 Array.map 方法 -

var result = ["figure figure watch?v=", "figure data watch?v="];
result.map(e => e.replace(/watch\?v=/g, "embeded/").replace(/figure/g, "ifigure"));
// (2) ["ifigure ifigure embeded/", "ifigure data embeded/"]

查看这个问题以了解更多关于替换正则表达式Fastest method to replace all instances of a character in a string

【讨论】:

    【解决方案2】:

    首先 [{"ifigure ifigure embeded/"}, {"ifigure data embeded/"}] 你这里有一个语法错误。您不能将字符串包含在对象中。你需要做这样的事情。如果将来您想替换新字符串,只需将它们添加到此对象中即可。

    var mapObj = {
       'watch?v=':"embeded/",
       'figure':"ifigure"
    };
    
    var result = ["figure figure watch?v=", "figure data watch?v="];
    console.log(result.map(res=> res.replace(/watch\?v=|figure/gi, function(matched){
      return mapObj[matched];
    })));
    
    

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2012-02-12
      • 1970-01-01
      • 2018-08-03
      • 2021-11-19
      • 1970-01-01
      • 2019-01-24
      • 2018-03-16
      • 2020-11-05
      相关资源
      最近更新 更多