1

我需要帮助来完成一项小任务。我有一个配置文件,我必须在其中获取指定的 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 代码中,我知道如何从文件中读取数据,但我现在需要的是只获取 HEX 代码(删除空行和注释),并将每个代码放入一个数组中。我猜这是一个正则表达式问题,但我有点库存:D

非常感谢

4

3 回答 3

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"
]
于 2013-09-20T18:59:17.523 回答
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; });

小提琴

于 2013-09-20T18:59:28.430 回答
0

给你:http: //jsfiddle.net/ECuux/1/

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

我使用的基本代码:

变量配置文件;// 你的文件作为一个字符串

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

于 2013-09-20T19:02:40.133 回答