我有这个字符串:
3EFF3E[ADMIN] 99FF99User1 : test
我想知道是否有任何方法可以检测字符串是否实际包含颜色。颜色可能在任何地方。
答案 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);