我正在使用正则表达式模式进行十六进制颜色验证,并正在https://regex101.com上对其进行测试。
问题是我不希望白色- #FFFFFF 被视为有效选择。
我尝试过:
^#(?= [A-Fa-f0-9] {6} | [A-Fa-f0-9] {3})((?! FFFFFF)。)* $
和#FFFFFF被认为不是我想要的有效,但是现在我得到了
#FFFasdfsdfg
或这个
#F00
作为有效的十六进制颜色,不会发生具有以下模式的事情:
^#([A-Fa-f0-9] {6} | [A-Fa-f0-9] {3})$
我在做什么错了?
谢谢您的帮助。
答案 0 :(得分:0)
您可以使用
^#(?!F{6}$)(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
请参见regex demo
从第一个(?!F{6}$)
到字符串末尾有6个F
个字符的情况下,#
负向超前失败。
如果您只想禁止#
之后的任何数字(1个或多个),请replace (?!F{6}$)
with (?!F+$)
。