我遇到一段JS代码问题。它应该从给定的样式声明中找到CSS颜色值的所有出现(colorNames
,#FFFFFF
,#FFF
,RGB
,transparent
)并替换它们使用span
元素后跟匹配本身。
嗯,一切似乎都没问题,除了那些已经浪费了我一整天的RGB()。
可以在jsFiddle上找到一个小的演示文稿和代码。在这里,我们预览了我的问题元素。
感谢您的时间和兴趣!
答案 0 :(得分:1)
以下内容应处理任何有效的rgb
或rgba
值
var regex = new RegExp(
"rgb\\((?:(?:\\s*\\d+\\s*,){2}\\s*\\d+|" +
"(?:\\s*\\d+(?:\\.\\d+)?%\\s*,){2}\\s*\\d+(?:\\.\\d+)?%)\\s*\\)|" +
"rgba\\((?:(?:\\s*\\d+\\s*,){3}|" +
"(?:\\s*\\d+(?:\\.\\d+)?%\\s*,){3})\\s*\\d+(?:\\.\\d+)?\\s*\\)", "gi"
);
请参阅FIDDLE。
答案 1 :(得分:0)
rgb函数不支持alpha参数(rgba确实)。此外,与这些函数匹配的正则表达式不起作用。我不得不承认,调试所有正则表达式只匹配一件事太麻烦了,所以我们只会尝试一个。 尝试(不检查值):
/(rgb\((?:\s*\d{1,3}\s*%?\s*,?\s*){3}\))/gi
修改强>
如果你想检查你的价值观,我们会使这个正则表达式更加复杂。