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

Javascript 正则表达式从css中删除@font-face规则,javascript,node.js,regex,Javascript,Node.js,Regex,如何从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 { } } .so

如何从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{

}
它不会删除第一个
@font-face

解决了以下问题:

工作代码

   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)

你能更好地格式化你的代码吗?很难理解您提供的示例输入,因此也很难理解您想要什么作为输出。另外,根据我对css的了解,字体后面的冒号规则应该是一个语法错误。请解释一下这是一个输入错误还是你想让正则表达式修改的其他情况match@RoboMop我做了一些修改,希望这个问题足够清楚…没有分号更正…这是一个打字错误…我想从css中删除所有的“@font-face”规则…正则表达式应该匹配。