<span style=\"font-size: small; color: rgb(230, 0, 0);\">萨达</span>
求个正则把上面这种html的格式转换成下面这种ugui格式
<color=#E60000>萨达</color>
<span style=\"font-size: small; color: rgb(230, 0, 0);\">萨达</span>
求个正则把上面这种html的格式转换成下面这种ugui格式
<color=#E60000>萨达</color>
function rgb2hex() {
var hex = "#";
for (var i = 0; i < arguments.length; ++i) {
hex += ("0" + (arguments[i] | 0).toString(16)).slice(-2);
}
return hex.toUpperCase();
}
var reg = /<span.*(color): rgb\((\d+), (\d+), (\d+)\);.*>(.*)<\/span>/;
var str = "<span style=\"font-size: small; color: rgb(230, 0, 0);\">萨达</span>";
var html = str.replace(reg, function(match, $1, $2, $3, $4, $5) {
return "<" + $1 + "=" + rgb2hex($2, $3, $4) + ">" + $5 + "</" + $1 + ">";
});
console.dir(html);
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.2k 阅读
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
不知道能不能满足你的需求 你可以在rgb后面在详细匹配,现在匹配出来的是这个

剩下的逗号分隔然后转16进制,相信你也会