我正在尝试用一个字符串替换所有@import 字符串,例如
var str = 'buttons .reprint{height:56px;background-position:-47px -1496px;}@import "../common/buttons.css";@import "../screen/screen-1.css";@import "../screen/screen-2.css";@import "../screen/screen-3.css";@import "../screen/screen-5.css";@import "../screen/screen-6.css";@import "../screen/screen-7.css";@import "../screen/screen-quick-messages.css";@import "../screen/reset-password.css";#xml-data{display:none;}body{font-family:"Helvetica Neue",HelveticaNeue,Helvetica-Neue,Helvetica,sans-serif;}ul{padding:0;}body,section{width:768px;}';
如果我这样写就可以了:
console.log(str.match(/@import\ /g));
但是如何在一行中指定所有@import 声明,例如@import "../screen/screen-1.css";
console.log(str.match(/@import\ .+;/g));
不起作用。
最佳答案
如果我错了请纠正我,但似乎 @import
总是具有这种格式:
@import (whitespace) (quote) (one or more non-quote characters) (quote) (semicolon)
如果这是真的,那么让我们相应地构建正则表达式:
/@import\s*"[^"]+";/
这应该分别匹配每个 @import
语句。
关于javascript正则表达式单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172175/