如何检测字符串是否包含HEX颜色代码

时间:2016-08-18 14:39:41

标签: javascript regex hex

我有这个字符串:

3EFF3E[ADMIN] 99FF99User1 : test

我想知道是否有任何方法可以检测字符串是否实际包含颜色。颜色可能在任何地方。

1 个答案:

答案 0 :(得分:2)

如果您只是想查找该字符串是否包含6行十六进制数字,您可以使用RegExp#test()

/[0-9A-F]{6}/i.test(str);

这将返回一个布尔值。

要真正找到颜色是什么,一种简单的方法是使用String#replace(),使用函数:

var str = '3EFF3E[ADMIN] 99FF99User1 : test';
var colors = [];

str.replace(/[0-9A-F]{6}/gi, function(color) {
  colors.push(color);
});

console.log(colors);

或者您可以在循环中使用更传统的RegExp#exec()

var str = '3EFF3E[ADMIN] 99FF99User1 : test';
var colors = [];

var match, colorReg = /[0-9A-F]{6}/gi;
while ((match = colorReg.exec(str)) !== null) {
    colors.push(match[0]);
}

console.log(colors);