我需要使用JavaScript拆分,但我在正则表达式中没用,所以我想做的是采用CSS结构的文本,例如:
var str = "selector {
width: 100px;
height: 20px;
}
.anything{
margin: 5%;
}";
str.split(/regex goes here/);
Run Code Online (Sandbox Code Playgroud)
预期产出
[
0 = selector{width: 100px; height: 20px;},
1 = .anything{margin: 5%;}
]
Run Code Online (Sandbox Code Playgroud)
希望它不会太混乱,但请问是否有疑问.
谢谢.
我不会为此分裂.相反,使用此正则表达式提取每个规则:
([\s\S]*?{[\s\S]+?})
Run Code Online (Sandbox Code Playgroud)
非常简单,但只要规则本身没有{和}字符就可以工作(我希望这种情况很少见).只要CSS在语法上有效,我的正则表达式就会忽略空格和换行符.我[\s\S]代替使用.因为.不符合换行符.
在您的情况下,要提取规则,它将是:
var myCSS = "CSS goes here";
var rules = myCSS.match(/([\s\S]*?{[\s\S]+?})/);
Run Code Online (Sandbox Code Playgroud)
编辑:
根据askers的要求,我修改了我的正则表达式以忽略选择器,例如:a {}.但是,它仍然会受到影响a { }.我将尝试为此找到解决方案,但同时您可能只需要处理每个规则并删除空规则.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |