【发布时间】:2011-05-10 16:10:37
【问题描述】:
我需要这样的东西:
Regex validSelector = new Regex("^[.#a-zA-Z0-9_:[] ]+[,><a-zA-Z0-9_~=\"\":[] ]*$");
有人写过正则表达式来验证 jQuery 或 CSS 选择器吗? (CSS3/jQuery1.4)
或者,有人知道我在哪里可以找到用于验证 jQuery 选择器的正则表达式或正则表达式生成器吗?(或至少 CSS 选择器?)
我尝试过查看sizzle.js bu John Resig 的代码和 css 的 w3c 文档 (http://www.w3.org/Style/CSS/),但结果头疼:(
我想问问你们中是否有人已经为此编写或使用过一些 sn-p。
谢谢!!
【问题讨论】:
-
从技术上讲,我不认为有任何无效的选择器,只是有些没有选择任何东西。无论如何,诸如大括号匹配和处理不同上下文(正常、方括号内、引号内)之类的任务对正则表达式非常不友好,通常使用某种解析器来完成。
-
@Jonathan:从他的代码 sn-p,我猜他想用 C# 来做这个。
-
@T.J. sn-p 看起来有些通用,但是是的,您可能是对的
-
@Jonathan:嗯,那个加上标签。 ;-)
-
@Jonathan Day:抱歉,我说的不是很清楚,我说的是 jQuery 选择器,而不是 CSS。
.123是一个 jQuery 选择器,它选择(无效)类123(在您选择的浏览器中尝试,它确实有效)。这是否会使 jQuery 选择器本身无效还有待商榷。另外,jQuery 的选择器语言非常开放,您可以轻松添加自己的运算符,甚至可以更改.的含义。
标签: jquery css regex jquery-selectors