jQuery - 捕获HEX颜色字符串

时间:2013-09-20 18:54:08

标签: jquery regex

我需要一些小任务的帮助。我有一个配置文件,我必须得到指定的HEX颜色代码:

; List of colors to use for
; the cards in the game
; Colour Memory

#3be6c4     
#e6e03b
#6f3be6 ; This purple shade could be nicer...
#4fe63b
#e63b3b 
#ff5a00 
#ff00de
#3b8fe6  

在我的jQuery代码中,我知道如何从文件中读取数据,但我现在需要的是仅使用十六进制代码(删除空白行和注释),并将每个代码放入一个数组中。我猜这是一个正则表达式问题,但我有点放养:D

非常感谢

3 个答案:

答案 0 :(得分:2)

使用/#[0-9a-f]{6}/ig作为正则表达式,不需要jquery,因为没有库就可以轻松完成。

var data = "your file data here";
hexcodes = data.match(/#[0-9a-f]{6}/ig);

十六进制代码将包含

[
    "#3be6c4",
    "#e6e03b",
    "#6f3be6",
    "#4fe63b",
    "#e63b3b",
    "#ff5a00",
    "#ff00de",
    "#3b8fe6"
]

答案 1 :(得分:1)

也可以在没有正则表达式的情况下完成 获取文件的字符串内容,拆分换行符并映射值,为不以#开头的任何内容添加空字符串,然后过滤掉容器:

var arr = 'string with hex codes'.split('\n');

var hex = $.map(arr, function(color) {
    return $.trim(color).indexOf('#') === 0 ? $.trim(color).slice(0,7) : '';
}).filter(function(n) { return $.trim(n).length; });

FIDDLE

答案 2 :(得分:0)

在这里:http://jsfiddle.net/ECuux/1/

使用此正则表达式:/\b[0-9A-F]{6}\b/gi

我使用的基本代码:

  

var configFile; //您的文件为字符串

     

configFile.match(/ \ B [0-9A-F] {6} \ B / GI)

相关问题