2011-09-27 105 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