我只想从 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解决方案吗?