einfach zu analysieren gefragt, ob jemand hat eine versucht & getestet regex eine CSS-Schriftzeichenfolge in seine verschiedenen Stücke zu analysieren:regex jede CSS Schrift
arial- 12px
- kursiv fett serifenlose
- 12px/50px verdana
- etc
einfach zu analysieren gefragt, ob jemand hat eine versucht & getestet regex eine CSS-Schriftzeichenfolge in seine verschiedenen Stücke zu analysieren:regex jede CSS Schrift
arialmeine eigene Frage zu beantworten:
/^\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
, die trennt:
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]
;
Und ja, erkenne ich, dass der wahnsinnige
Ich schreibe dieses Biest nicht für dich, aber ich würde nach Hinweisen für Dinge suchen, die sich ähnlich wie die Größeneinheiten wiederholen, um es etwas zu reduzieren. –
@ErikReppen - Ich glaube nicht, dass ich es viel mehr komprimieren kann, als es bereits ist :) Die Größeneinheiten können nicht zurückverlinkt werden, weil "12px/30em verdana" vollkommen gültig ist. –
@ErikReppen - Scratch, die Rückreferenzen für die ersten 3 Requisiten hinzugefügt :) –
Sie wie das bedeuten?
How to parse CSS font shorthand format
Alternativ gibt es auch JSCSSP, eine JavaScript-Bibliothek für CSS Parsen.
Kann die akzeptierte Antwort nicht verwenden, da dieser Code manchmal in node.js ausgeführt wird, so dass er nicht verwendet werden kann dom -Parsing. Die Antwort weiter unten könnte funktionieren, muss getestet werden. –
möglich Duplikat ist [Wie CSS Schrift Stenografie-Format analysieren] (http://stackoverflow.com/questions/5618676/how-to-parse-css-font-shorthand-format) – stema