基本上,我需要对 CSS 文件中的所有 CSS 选择器进行模式匹配。理想情况下,它应该能够获取所有这些规则(以及某人可以在 CSS 文件中编写的任何其他规则)。如果有帮助的话,这是针对 javascript CSS 解析器的。
#div div .child {
}
.somediv, #someotherdiv {
}
body:hover {
}
到目前为止我能想到的最好的办法是:
/(#|\.|[a-zA-Z])(.*) {/g
但这最终只会选择超出其需要的内容...就像一个选择器一样,它的所有规则都是如此,直到下一个选择器的开头“{”。已经尝试了几个小时了。提前致谢!
最佳答案
如果您只关心选择器本身,这应该会让您更接近。我认为它匹配单个空格,所以还可以使用更多调整......
var css = ...some css string...
var found = css.replace(/{([^}]*)}/gm,"{}").match(/([#|\.]?)([\w|:|\s|\.]+)/gmi);
关于javascript - 将 CSS 选择器与 Javascript RegExp 相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5481749/