Google Webfont ディレクトリの URL 文字列から最初のフォント名だけを抽出したいと考えています。可能な文字列と返される部分の例を次に示します。
fonts.googleapis.com/css?family=Raleway // "Raleway"
fonts.googleapis.com/css?family=Caesar+Dressing // "Caesar Dressing"
fonts.googleapis.com/css?family=Raleway:300,400 // "Raleway"
fonts.googleapis.com/css?family=Raleway|Fondamento // "Raleway"
fonts.googleapis.com/css?family=Caesar+Dressing|Raleway:300,400|Fondamento // "Caesar Dressing"
そのため、フォント名が 1 つだけの場合もあれば、コロン ( :
) で示される太さがある場合もあれば、パイプ ( |
) で分割された複数のフォント名がある場合もあります。
試してみましたが、または/family=(\S*)[:|]/
の文字列にのみ一致します。私はこのようにすることができますが、それは良い解決策ではありません::
|
var fontUrl = "fonts.googleapis.com/css?family=Caesar+Dressing|Raleway:300,400|Fondamento";
var fontName = /family=(\S*)/.exec(fontUrl)[1].replace(/\+/, " ");
if (fontName.indexOf(':') != -1){
fontName = fontName.split(':')[0];
}
if (fontName.indexOf('|') != -1){
fontName = fontName.split('|')[0];
}
console.log(fontName);
これに対する良いregex
解決策はありますか?