例如:
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 次。允许 ABC
和 AABBCC
,但不允许 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/