我对JavaScript和jQuery有点陌生,现在我遇到了一个问题:
我需要将一些数据发送到PHP,其中一部分数据需要是div X的背景颜色十六进制值。
jQuery有css("background-color")函数,可以将背景的RGB值获取到JavaScript变量中。
CSS函数似乎返回这样一个字符串:rgb(0, 70, 255)。
我找不到任何获取背景颜色的十六进制值的方法(即使它在CSS中被设置为十六进制)。
因此,似乎我需要进行转换。我找到了一个将RGB转换为十六进制的函数,但需要使用三个不同的变量r、g和b来调用它。所以我需要将字符串rgb(x,xx,xxx)解析成var r=x;var g=xx;var b=xxx;的形式。
我尝试过用JavaScript解析字符串,但我并没有真正理解正则表达式的东西。
是否有办法获取div的背景颜色作为十六进制呢,或者可以将该字符串转换为三个不同的变量吗?
/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(1|0|0\.\d+))?\)$/
在末尾附近加上了|0
来检查alpha是否为0而不是0.x。 - fortuneRice(1|0|0?\.d+)
,因为.3
是有效的。 - nickf