3

誰かがcssフォント文字列をさまざまな部分に解析するために試行錯誤された正規表現を持っているかどうか疑問に思っています:

  • 12pxのarial
  • イタリック体の太字のサンセリフ
  • 12px / 50px verdana
4

2 に答える 2

8

私自身の質問に答える:

/^\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-13T06:07:29.510 に答える
3

こういう意味ですか?

CSSフォントの短縮形を解析する方法

または、 CSSを解析するためのJavaScriptライブラリであるJSCSSPもあります。

于 2012-04-13T05:38:03.763 に答える