解析CSS文本并提取选择器

时间:2018-07-08 09:53:14

标签: javascript html css regex

我正在尝试解析css文本并从cssSelectors中提取元素id或类。 因此,我在createHTMLDocument("")内创建了一个样式元素,以便可以注入cssText并使用node.sheet.cssRules。 现在,我可以可靠地提取每个选择器文本,而无需复杂的正则表达式。 但选择器文本也可能非常复杂,例如:

".some-calss"
".class1> .class2"
".class1 *, .class2 *, .class3 *, .class4 *, .class5 *"
".class1 > .class2.class3"
"div[is="someis"].class4"

所以我需要可靠地提取所有id和class,如果class或id符合我的条件,我需要替换该特定选择器的id或class并将其添加到缓冲区中,以便可以将另一个样式标签注入到真正的带有修改后的ID和类的dom。 有什么想法吗?

编辑: 所以我试图用正则表达式来解决这个问题,但是我遇到了很多麻烦。我设法创建了一些非常基本的东西:

(?:^|[\.]).*?([^\s]+(?!\.))

但是如果我有这样的选择器:

.test-in-out.testclass-2#testclass

它将选择所有这些。 有帮助吗?

0 个答案:

没有答案