替换特定模式的子字符串

6 浏览
0 Comments

替换特定模式的子字符串

我想用一个颜色替换fill的值,假设是#ff0000。请注意,字符串中的颜色值并不总是相同的,而是动态的。

这是我的代码:

const str = `symbol-triangle-down`;
console.log(str.replace(/fill="{7}"/, '#ff0000'))

请指教。

最终结果应该是:

const str = `symbol-triangle-down`;

0
0 Comments

原因:本问题的出现是因为需要将字符串中特定模式的子串替换掉。

解决方法:使用正则表达式的replace方法进行替换。

代码如下:

const str = `symbol-triangle-down`;
console.log(str.replace(/(\sfill=")#[a-fA-F0-9]+(")/, '$1#ff0000$2'));

其中,正则表达式`/(\sfill=")#[a-fA-F0-9]+(")/`用于匹配需要替换的子串,`$1#ff0000$2`表示将匹配到的子串替换为`fill="#ff0000"`。

这个正则表达式可以匹配所有以十六进制格式表示的颜色值。更多关于十六进制数字的正则表达式可以参考[stackoverflow.com/questions/9221362/…](https://stackoverflow.com/questions/9221362)。

0