2011-09-27 70 views
3

什么是可以在CSS上使用的一些准则,以确保它至少在语法上是有效的。我提出的四项检查是确保至少有一个“{”,“}”,“;”和“:”存在,如果确实存在“{”和“}”的数字匹配以及“:”和“;”的数量相同比赛。我也检查确保它以“。”开头。并以“;}”结尾,并包含所有可能的空白组合。验证CSS是否有效语法

是否有任何其他检查可以运行它只是为了确保它是有效的语法?

或者更好,但没有人有正则表达式可以验证这一点吗?我对于正则表达式非常陌生,但似乎它能够处理我提到的所有检查。

+0

为什么不使用http://jigsaw.w3.org/css-validator/? – Kenny

+0

+1为一种有趣的启发式问题 –

+1

你为什么要这样做? – thirtydot

回答

4

,我能想到的最简单的适合正则表达式是:

(([.#]?[a-zA-Z_-0-9]+\ *)+\{([a-zA-Z-])+\ *\:[^;]+;\})+ 

它不考虑@charset ...;指令和注释(\ * ... * \), 也不检查大括号url(...)和“...”对内容:“...”, 但你可以尝试自己添加如果你需要。

+0

'[a-zA-Z_-0-9]应该做什么“_-”部分?我最初得到一个错误,当我删除“_-”时它就消失了。一旦我把它拿出来,它完全符合我的需求。没有像其他人指出的那样充分验证,但仅仅为此添加第三方工具并没有真正让我觉得值得花时间。 –

+0

- 是一个字符范围指示器。一些正则表达式引擎可以理解,在这种情况下,_-0-9的意思是_, - ,0到9,但是您使用的引擎要求 - 在不用于表示字符范围时被转义。 – mauhiz

+0

它支持'!important'等吗? – Shimmy