给定一个字符串像#fff443
或#999999
在Javascript正则表达式中,如何验证字符串是否为有效的十六进制颜色?
如何验证字符串有:
- 7个字符,第一个是一个哈希
- 字符串中没有符号除了散列开始
给定一个字符串像#fff443
或#999999
在Javascript正则表达式中,如何验证字符串是否为有效的十六进制颜色?
如何验证字符串有:
看来,要针对CSS配色:
function isValidColor(str) {
return str.match(/^#[a-f0-9]{6}$/i) !== null;
}
要阐述:
^
比赛开始
#
哈希
[a-f0-9]
从AF任何字母和0-9
{6}
出现的前一组刚好6次
$
比赛结束
i
忽略大小写
noot quite先进的正则表达式,并不包括所有的情况 – 2012-01-15 10:04:45
@罗伊纳米尔:根据OP的严格要求,这不包括什么? – 2012-01-15 10:05:38
@桥:他也不知道一个十六进制可以是'#aca' – 2012-01-15 10:09:54
有很多方法来检查差异erent结构:看到我的高级答案:http://stackoverflow.com/questions/8027423/how-to-check-if-a-string-is-a-valid-hex-color-representation/8027444#8027444 – 2012-01-15 10:05:31