我获取了一些CSS并将其存储在var中,但我正在尝试使用正则表达式来解析类。这是一个简单的部分,但似乎我有正则表达式的问题,以刮去存储的大括号之间的内容。
我的尝试是:http://jsfiddle.net/2qaCY/
我想要的只是迭代循环遍历类并在大括号之间刮掉内容。
小提琴上的代码:
var css = ".Winning{color: #24CCFF;background-color: #FF8091;}.Losing{color: #2EFFCE;background-color: #DB4DFF;}.crayons{font-family: papyrus;font-size: 32pt;}";
var reg = /\.[a-zA-Z0-9]*\{/ig;
var matches = css.match(reg);
for (var m in matches) {
var sClass = matches[m].substr(0, matches[m].length - 1);
$("body").append(sClass + "<br />");
var c = new RegExp("\\." + sClass + "[\\n\\s]*\{[\\s\\n.]*\}", "ig");
var out = c.exec(css);
$("body").append(out);
$("body").append("<br /><br />");
}
答案 0 :(得分:1)
好的,所以下面的例子将类存储在一个数组中,整个事物存储在一个映射中,其中键是类,内容是该键的值。
如果你想要一个带有正则表达式的解决方案,那么还需要10分钟,但这就是你想要的。
var css = ".Winning{color: #24CCFF;background-color: #FF8091;}.Losing{color: #2EFFCE;background-color: #DB4DFF;}.crayons{font-family: papyrus;font-size: 32pt;}";
var reg = /\.[a-zA-Z0-9]*\{[a-zA-Z0-9:\- #;]+\}/ig;
var matches = css.match(reg);
var classes = []
var classMap = {}
matches.map(function(item) {
var cl = (item.split("{")[0])
classes.push(cl)
classMap[cl] = item.split("{")[1].split("}")[0]
})
// All the classes in an array
console.log(classes);
console.log(classMap);