使用字符串中的rgb值搜索和替换十六进制颜色代码

Arv*_*waj 0 javascript regex jquery color-codes

我有一个元素的HTML源代码.我想搜索其中的所有十六进制颜色代码,并用它们的RGB等价替换它们.我怎么能用JavaScript做到这一点?

例如:

This is <span style="color:#FF0000">red</span> and <span style="color:#3C9310">green</span> color.
Run Code Online (Sandbox Code Playgroud)

应该换成

This is <span style="color: rgb(255, 0, 0)">red</span> and <span style="color: rgb(60, 147, 16)">green</span> color.
Run Code Online (Sandbox Code Playgroud)

Adi*_*dil 5

你可以使用jquery css('color').

现场演示

$('#spcolor').css('color')
Run Code Online (Sandbox Code Playgroud)

对于迭代通过许多元素具有相同的类.

现场演示

$('.someclass').each(function(){
   alert($(this).css('color'))    
});
Run Code Online (Sandbox Code Playgroud)


Xop*_*ter 5

如果您想将字符串中的所有十六进制颜色转换为十进制 RGB 值str,以下操作将起作用。请注意,这仅考虑 8 位/通道十六进制值(例如#FF0000)而不考虑 4 位变体(例如#F00);但是,这很容易增强。

var rgbHex = /#([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])([0-9A-F][0-9A-F])/gi
str.replace(rgbHex, function (m, r, g, b) {
  return 'rgb(' + parseInt(r,16) + ','
                + parseInt(g,16) + ','
                + parseInt(b,16) + ')';
})
Run Code Online (Sandbox Code Playgroud)