我只想从 Google Webfont Directory 的 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"
所以有时它只是一个字体名,有时它有一个用冒号 ( :
) 表示的权重,有时还有更多的字体名用竖线 ( |
) 分隔。
我已经尝试过/family=(\S*)[:|]/
,但它只匹配带有:
or的字符串|
。我可以这样做,但这不是一个好的解决方案:
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
解决方案吗?