Javascript 在不拆除内部零件的情况下更换管柱

Javascript 在不拆除内部零件的情况下更换管柱,javascript,regex,Javascript,Regex,code.replace(/(id=“.*”)(cx=“.*”)(cy=“.*”)(r=“.*”)fill=“currentcolor”/,`id=${objectdata.id}fill=“currentcolor”`) 目标:更改包含fill=“currentcolor”的标记中的id 问题:上面的解决方案是删除id和fill之间的所有内容 有有效的解决方案吗?一个小问题:您当前的正则表达式在${objectdata.id} code.replace(/(id=".*?"

code.replace(/(id=“.*”)(cx=“.*”)(cy=“.*”)(r=“.*”)fill=“currentcolor”/,`id=${objectdata.id}fill=“currentcolor”`)

目标:更改包含fill=“currentcolor”的标记中的id

问题:上面的解决方案是删除id和fill之间的所有内容


有有效的解决方案吗?

一个小问题:您当前的正则表达式在
${objectdata.id}

code.replace(/(id=".*?") (cx=".*?") (cy=".*?") (r=".*?") fill="currentcolor"/, ` id="${objectdata.id}" fill="currentcolor"`)
要保留它们之间的值,可以使用如下捕获组,其中
$2
表示与
(cx=“.*”)
匹配的子字符串

但是,如果它们之间的值无关紧要,您也可以这样做,除了
id
之外的所有内容都属于
$2

code.replace(/(id=".*?")(.*fill="currentcolor")/, ` id="${objectdata.id}"$2`)

为什么不使用domapi而不是regex来实现呢?谢谢。很有帮助
code.replace(/(id=".*?")(.*fill="currentcolor")/, ` id="${objectdata.id}"$2`)