javascript - 如何检查字符串是否是有效的十六进制颜色表示?

标签 javascript jquery colors

例如:

AA33FF = 有效的十六进制颜色

Z34FF9 = 无效的十六进制颜色(其中有 Z)

AA33FF11 = 无效的十六进制颜色(有额外字符)

最佳答案

/^#[0-9A-F]{6}$/i.test('#AABBCC')

详细说明:

^ -> 匹配开头
# -> 一个散列
[0-9A-F] -> 0 到 9 的任意整数和 A 到 F 的任意字母
{6} -> 前一组恰好出现 6 次
$ -> 匹配结束
i -> 忽略大小写

如果您需要支持 3 个字符的十六进制代码,请使用以下内容:

/^#([0-9A-F]{3}){1,2}$/i.test('#ABC')

这里唯一的区别是

 [0-9A-F]{6}

替换为

([0-9A-F]{3}){1,2}

这意味着它不会恰好匹配 6 个字符,而是会恰好匹配 3 个字符,但只会匹配 1 次或 2 次。允许 ABCAABBCC,但不允许 ABCD

组合解决方案:

var reg=/^#([0-9a-f]{3}){1,2}$/i;
console.log(reg.test('#ABC')); //true
console.log(reg.test('#AABBCC')); //true

关于javascript - 如何检查字符串是否是有效的十六进制颜色表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8027423/

相关文章:

jquery - 如何让元素一张一张滑入?

c++ - 使用 conio.h 更改文本颜色时出错

python - 如何检测检测到的形状OpenCV的颜色

添加类的 Javascript 仅在调整窗口大小后有效?

javascript - EcmaScript语法中的[Yield, Await, In, Return]是什么

javascript - plupload - 限制所选文件的数量

javascript - 显示带有复选框和标签的列网格,以便复选框可单击并可发送到 PHP

java - 如何防止页面刷新? AJAX、Spring MVC

javascript - jquery $(this).attr ('id' ) 给出未定义的结果

java - 查找图像 OpenCV Android SDK 中的颜色百分比