正则表达式在sass文件中提取字体系列

时间:2017-11-27 18:56:11

标签: javascript regex ecmascript-6 sass

可能非常明显,但我真的不与正则表达相处......

我正在尝试从javascript中包含@ font-face的sass文件中提取字体名称。示例如下:

鉴于此字符串:

@font-face {
    font-family: 'fancy-icons';
    src:
        url('#{$icon-font-path}/fancy-icons.ttf?p3owtd') format('truetype'),
        url('#{$icon-font-path}/fancy-icons.woff?p3owtd') format('woff'),
        url('#{$icon-font-path}/fancy-icons.svg?p3owtd#fancy-icons') format('svg');
    font-weight: normal;
    font-style: normal;
}

我想提取单词fancy-icons,意思是单引号中的字符串,它可以是任何内容。

关闭尝试让我看到了这段代码:

const scssContent = fs.readFileSync(path.resolve('fonts.scss'), 'utf-8');
scssContent.match(new RegExp(/font-family: '(.*?)';/g));

但我得到的只是整个font-family: 'fancy-icons';

提前致谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做:



const arr = [
  `font-family:'xxx';`,
  `font-family:'xxx'`,
  `font-family: 'xxx';`,
  `font-family: "xxx";`,
  `font-family:"xxx";`
];

arr.forEach(str => console.log(str.match(/font\-family:\s*['"]([^"']+)['"];?/)))