我已经为此苦苦挣扎了一段时间,所以我想我会在这里问问是否有人可以帮助我。
我在 javascript 中有一串 css 样式,如下所示:
width: 250px; background-color: rgb(48, 44, 48);
我试图通过一个我称为 RGBtoHEX 的函数运行它,用十六进制值替换字符串中的 rgb 值,所以我得到如下字符串:
width: 250px; background-color: #302C30;
我正在努力创建正则表达式以从主字符串中获取 rgb 字符串以传递给函数。
任何帮助都会很棒。
感谢收看
最佳答案
尝试这样的事情:
str.replace(
/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
function($0, $1, $2, $3) {
return "#" + ("0"+Number($1).toString(16)).substr(-2) + ("0"+Number($2).toString(16)).substr(-2) + ("0"+Number($3).toString(16)).substr(-2);
})
关于regex - 如何使用正则表达式+替换将CSS样式的javascript字符串中的rgb值更改为十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529752/