正则表达式从 css 中删除 @font-face 规则

我怎样才能完全从 css 中删除字体


我有以下代码:


css = `

@font-face

{

  font-family:Rating;

  src:url(data:application/x-font-ttf;

  charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjA....)format('woff');

  font-weight:400;

  font-style:normal

}

#milk{

}

@font-face{

  p {

  }

}

.some-class{


}`

css = css.replace(/@font[^\{]+\{([^\{\}]*\{[^\}\{]*\})+[^\}]+\}/gi,'')


console.log(css)

预期结果是删除所有字体


但是它给出了:


@font-face

{

  font-family:Rating;

  src:url(data:application/x-font-ttf;

  charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjA....)format('woff');

  font-weight:400;

  font-style:normal

}

#milk{

}


.some-class{


}

它不会删除 1's @font-face。


斯蒂芬大帝
浏览 221回答 1
1回答

BIG阳

解决了这个问题:工作代码   css = `@font-face{  font-family:Rating;  src:url(data:application/x-font-ttf;  charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjA....)format('woff');  font-weight:400;  font-style:normal}#milk{}@font-face{  p {  }}.some-class{}`css = css.replace(/@font-face[^{]*{([^{}]|{[^{}]*})*}/gi,'')console.log(css)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript