如何在 Javascript 中识别颜色

How to identify colors in Javascript?

本文关键字:识别 颜色 Javascript      更新时间:2023-09-26

我想解析输入并检查输入的彩色格式是 RGBA 还是十六进制格式,并为用户提供使用开关大小写输入常规颜色颜色名称的空间。

我找到了十六进制颜色和常规颜色名称的正则表达式,但找不到 RGBA 的正则表达式。

爪哇语

function verifycolor(colorcode) {
  var regColorcode = /^(#)?([0-9a-fA-F]{3})([0-9a-fA-F]{3})?$/;
  if(regColorcode.test(colorcode) == false)
    document.getElementById("status").innerHTML = "Color is not yet valid.";
  else if(regColorcode.test(colorcode) == true)
    document.getElementById("status").innerHTML = "You have entered a valid color code";
}

JSFIDDLE 对我使用此代码不起作用。不知道原因。所以它就在这里。

谁能帮我做同样的事情 RGBA 颜色。如果正则表达式可以将其解析为红色、绿色、蓝色和 alpha,那就太好了。

一些搜索给了我这个RGB颜色解析器:

  • http://www.phpied.com/rgb-color-parser-in-javascript/

它完全可以满足您的需求(甚至可以输出颜色通道)。当然,它可用于颜色验证。

从描述:

一个接受字符串并尝试找出它的有效颜色。一些接受的输入例如:

  • rgb(0, 23, 255)
  • #336699
  • ffee66
  • fb0
  • red
  • darkblue
  • cadet blue

演示:http://www.phpied.com/files/rgbcolor/rgbcolor.html

rgba'(((25[0-5])|(2[0-4]'d)|(1?'d'd)|'d)%?, *((25[0-5])|(2[0-4]'d)|(1?'d'd)|'d)%?, *((25[0-5])|(2[0-4]'d)|(1?'d'd)|'d)%?, *((25[0-5])|(2[0-4]'d)|(1?'d'd)|'d)%?')

这匹配 rgb() 内部有 4 个介于 0 和 255 之间的数字,用 ,(或 ,<space>)分隔,后跟一个%符号。当然,百分比不应超过 100%,但出于目的,它会这样做。