正则表达式用于有效的css和/或jQuery选择器

时间:2010-11-16 07:39:25

标签: jquery css regex jquery-selectors

我需要这样的东西:

Regex validSelector = new Regex("^[.#a-zA-Z0-9_:[] ]+[,><a-zA-Z0-9_~=\"\":[] ]*$");

有人写过正则表达式来验证jQuery或CSS选择器吗? (CSS3 / jQuery1.4)

或者,是否有人知道我在哪里可以找到一个正则表达式或正则表达式生成器来验证jQuery选择器?(或至少CSS选择器?)

我已尝试通过sizzle.js诉John Resig的代码和w3c docs for css(http://www.w3.org/Style/CSS/),但最终还是头疼:(

以为我宁愿问你们是否已经为此编写或使用了一些代码片段。

谢谢!

2 个答案:

答案 0 :(得分:1)

正则表达式不会成为出色的解析器。 (他们可能会成为解析器的优秀部分。)如果你真的需要这样做,你可能需要实际使用解析器。 StackOverflow上的answers to this question here可以帮助那里。

答案 1 :(得分:1)

Specification of CSS 3 Selectors有一个关于grammar of selectors的部分,可用于构建正则表达式。只需从选择器开始,将每个变量替换为其生成,直到没有变量为止。