我想使用正则表达式替换组成十六进制颜色的三个十六进制组中的每一个的前一个F.
FFFFFF将成为EFEFEF
FEFEFE将成为EEEEEE
答案 0 :(得分:0)
我想这样做的功能会被诸如onClick之类的事件触发。 你为什么不简单地做这样的函数(伪代码)?
if (colour == FFFFFF)
colour = EFEFEF;
else if (colour == FEFEFE)
colour = EEEEEE;
答案 1 :(得分:0)
您可以使用:
str = str.replace(/F(?=[A-F0-9](?:[A-F0-9]{2}){0,2}$)/g, 'E');
模式细节:
F
(?= # lookahead assertion: means "followed by"
# the trick is to use the relative position to the end of the string
[A-F0-9] # an hexadecimal character
(?:[A-F0-9]{2}){0,2} # an even number of hexadecimal characters
$ # until the end
) # close the lookahead assertion.
请注意,只检查前瞻中的所有内容,但不是匹配结果的一部分。这就是替换字符串仅为E
的原因。