我需要一些小任务的帮助。我有一个配置文件,我必须得到指定的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
非常感谢
答案 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; });
答案 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)