回答
回答我的問題:
/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-,\"\sa-z]+?)\s*$/i
分開來:
var parts = rx.exec(str)
, fontStyle = parts[1] || 'normal'
, fontVariant = parts[2] || 'normal'
, fontWeight = parts[3] || 'normal'
, fontSize = parts[4]
, lineHeight = parts[5]
, fontFamily = parts[6]
;
是的,我知道這是瘋狂
我不是爲你寫那個野獸,但是我會回頭看看那些像大小單位一樣重複的東西來修剪它。 – 2012-04-13 06:32:16
@ErikReppen - 我不認爲我可以壓縮它比已經多:)大小單位不能被反引用,因爲'12px/30em verdana'完全有效。 – 2012-04-13 06:42:05
@ErikReppen - 從頭開始,爲前3個道具添加後退引用:) – 2012-04-13 06:46:25
不能使用接受的答案,因爲這段代碼在node.js中運行有時候不能使用DOM -parsing。進一步下來的答案可能會起作用,需要進行測試。 – 2012-04-13 05:41:57
- 1. 用正則表達式解析css
- 2. 正則表達式來解析IP
- 3. .NET正則表達式來解析ifconfig
- 4. 正則表達式來解析JSON
- 5. 正則表達式來解析HTML imgs
- 6. 正則表達式{}解析
- 7. 正則表達式解析
- 8. 正則表達式解析
- 9. 正則表達式解析字符串
- 10. 正則表達式 - 解析字符串
- 11. 正則表達式解析字符串
- 12. 形成正則表達式來解析數值表達式
- 13. 需要正則表達式來解析文本主體
- 14. Java。正則表達式。如何解析?
- 15. 如何解析正則表達式
- 16. JavaScript中的正則表達式來解析UM字符串
- 17. 使用正則表達式來解析這個字符串?
- 18. 使用正則表達式來解析$資源字符串
- 19. 正則表達式問題來解析一個字符串
- 20. Java:正則表達式來解析字符串的「邊緣」
- 21. 正則表達式來解析轉義字符
- 22. 正則表達式來解析Python中的選項字符串
- 23. 正則表達式來解析一個字符串在java中
- 24. 正則表達式來解析出多行字符串
- 25. 正則表達式來解析FTP鏈接字符串
- 26. php正則表達式解析來自字符串的參數
- 27. c#正則表達式列表解析
- 28. Lucene任何字母正則表達式
- 29. 正則表達式 - 任何字符
- 30. 具體的正則表達式任務:
的可能重複[如何解析CSS字體速記格式( http://stackoverflow.com/questions/5618676/how-to-parse-css-font-shorthand-format) – stema 2012-04-13 05:57:16