小编jor*_*tor的帖子

使用捕获的匹配作为键,用正则表达式替换字符串

假设我有这个字符串:

<i id="1"></i><i id="2"></i><i id="3"></i>
Run Code Online (Sandbox Code Playgroud)

和这个对象:

{
  "1": "Red",
  "2": "Green",
  "3": "Blue"
}
Run Code Online (Sandbox Code Playgroud)

然后我想获取这个字符串:

<i color="Red"></i><i color="Green"></i><i color="Blue"></i>
Run Code Online (Sandbox Code Playgroud)

可以通过正则表达式替换来实现吗?

我试过这个:

var stringIwant = stringIhave.replace(/id="(\d)"/g, 'color="' + myObject["$1"] + '"')
Run Code Online (Sandbox Code Playgroud)

但它尝试读取对象的属性“$1”,但该属性不存在。我还尝试删除 1 美元左右的引号:

var stringIwant = stringIhave.replace(/id="(\d)"/g, 'color="' + myObject[$1] + '"')
Run Code Online (Sandbox Code Playgroud)

但我得到了ReferenceError: $1 is not defined

我尝试了更多的事情,但没有什么值得一提的。

这就是为什么我想知道这是否可能。有什么帮助吗?

javascript regex string replace

2
推荐指数
1
解决办法
347
查看次数

标签 统计

javascript ×1

regex ×1

replace ×1

string ×1