可能非常明显,但我真的不与正则表达相处......
我正在尝试从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';
。
提前致谢。
答案 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*['"]([^"']+)['"];?/)))