Javascript 解析Css文本并提取选择器

Javascript 解析Css文本并提取选择器,javascript,html,css,regex,Javascript,Html,Css,Regex,我试图解析css文本并从css选择器中提取元素id或类。 因此,我在createHTMLDocument(“”中创建了一个样式元素,这样我就可以插入cssText并使用node.sheet.cssRules。 现在我可以可靠地提取每个selectorText,而无需复杂的正则表达式。 但是selectorText也可能相当复杂,例如: ".some-calss" ".class1> .class2" ".class1 *, .class2 *, .class3 *, .class4 *,

我试图解析css文本并从css选择器中提取元素id或类。 因此,我在
createHTMLDocument(“”
中创建了一个样式元素,这样我就可以插入cssText并使用node.sheet.cssRules。 现在我可以可靠地提取每个selectorText,而无需复杂的正则表达式。 但是selectorText也可能相当复杂,例如:

".some-calss"
".class1> .class2"
".class1 *, .class2 *, .class3 *, .class4 *, .class5 *"
".class1 > .class2.class3"
"div[is="someis"].class4"
因此,我需要可靠地提取所有id和类,如果类或id符合我的条件,我需要替换特定选择器的id或类,并将其添加到缓冲区中,这样我就可以使用修改后的id和类向真实dom注入另一个样式标记。 有什么想法吗

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

(?:^|[\.]).*?([^\s]+(?!\.))
但如果我有这样一个选择器:

.test-in-out.testclass-2#testclass
它将选择所有这些。
有什么帮助吗?

你为什么需要这个?对我来说,这更像是一个逻辑缺陷。你可以用另一种方法。使用
getComputedStyle()
给每个元素一个唯一的样式,并通过javascript获取所有受影响的元素。我需要它,因为我正在从字符串解析html,我需要更改一些元素ID和类,所以我还需要更改样式标记@laincan中的ID和类。您只需给它们一个额外的类吗?你能控制那个HTML吗?如果没有,为什么要获取“错误”的HTML?@Lain我可以给他们一个额外的类,但首先我需要提取选择器的Id和类,以便获取元素,所以我仍然需要完全按照我描述的操作,并且我不会获取错误的HTML,HTML来自第三方,我想为一些元素添加额外的样式,我需要选择器中的Id和类,所以我需要完全按照上面描述的做,有一些插件。喜欢