如果颜色字符串是一个数字,那么我们可以使用 RegExp
来检查它是否是有效的 CSS 颜色。但如果是一个词呢?
我有从颜色参数动态生成控件的代码。但是除了颜色,可能还有 null
、 ""
或随机词。有没有办法用 Javascript 检查颜色名称?
更新: 非常感谢您的精彩回答! :) 我的最终版本如下(添加了 toLowerCase()
检查,因为颜色可能是 "Green"
, "Red"
等)。
function isValidColor(strColor) {
var s = new Option().style;
s.color = strColor;
// return 'false' if color wasn't assigned
return s.color == strColor.toLowerCase();
}
原文由 Gennady G 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个简单的函数,用于检查当前浏览器对颜色名称的支持:
由于无效的 CSS 属性值不会持续存在,我们可以将尝试设置的值与我们打算设置的值进行比较,如果它们匹配,我们就知道颜色/属性是有效的。
请注意,这也将批准十六进制、RGB 等。您可以使用
RegExp
筛选掉它们,如果这对您的应用程序来说是个问题,则可以使用两个。