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`)