Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 所有情况下@import css标记的正则表达式_Javascript_Css_Regex - Fatal编程技术网

Javascript 所有情况下@import css标记的正则表达式

Javascript 所有情况下@import css标记的正则表达式,javascript,css,regex,Javascript,Css,Regex,**各位好,, 我正在做一些网页源代码的工作。我需要用于导入.css文件的所有可能语法的正则表达式。比如说- 1.@import url("a.css"); 2.@import url('a.css'); 3.@import url ("a.css"); 4.@import url ('a.css'); 5.@import "a.css"; 6.@import 'a.css'; etc. 我希望所有情况下都使用一个正则表达式。请帮助。**我将使用以下方法: @import.*?["']([

**各位好,, 我正在做一些网页源代码的工作。我需要用于导入.css文件的所有可能语法的正则表达式。比如说-

1.@import url("a.css");
2.@import url('a.css');
3.@import url ("a.css");
4.@import url ('a.css');
5.@import "a.css";
6.@import 'a.css';  etc. 

我希望所有情况下都使用一个正则表达式。请帮助。**

我将使用以下方法:

@import.*?["']([^"']+)["'].*?;
@import.*?[“]
匹配行的开头,直到打开引号或双引号。
([^”]+)
匹配引号或双引号(url)之前的所有内容,并对其进行分组。
[“'].*?;
与行尾匹配

如上所示。

这是未经测试的:

/^@import\s(url\s?\((["'])(.*?)\2|(["']).*?\4);
答案将在\4中

但也许仅仅匹配
^@import
就足够了?您需要提取文件名吗?

如下所示:

const re=/(?:@import)\s(?:url\()?\s?[“\”](.*?[“\”]\s?\)(?:[^;]*);?/gi;
const s='@import-url(“fineprint.css”)打印;@import-url(“bluish.css”)投影,电视;@import-custom.css\';@import-url('chrome://communicator/skin/);@import“common.css”屏幕,投影;@import url(\'scarland.css\')屏幕和(方向:横向);';

s、 替换(re,(match,g1)=>console.log(match,g1));
我想改进已接受的正则表达式:

@import.*?["']?([^"']+?)["']?.*?;

你能告诉我们到目前为止你尝试了什么吗?你可以试着为每一行写一个正则表达式,然后用“|”来尝试所有的正则表达式,就像(r1 | r2 | r3)一样。是的,我尝试了很多正则表达式,但没有任何一个能给我我我想要的输出。我的一些表达式是url\(\”()\(url\)(url\)(url\)|@import'(.*)(124; import\(*)(.*))\“@import\\s+(url\(\\\((css)\)?\\s*(\“\”)(.+)\\s*(\“\”)(\)”,但它没有考虑ech,而且您的模式也没有给出答案。我已经试过了上面提到的每一根绳子。由于它不包括空间条件,您称之为“空间条件”是什么?你咨询过我的链接吗?你知道否定类吗?对不起,先生,我错了。这种模式正在发挥作用。我在文件中提取了一些字符串,它正在工作。但我不知道为什么它不适用于代码中的字符串。另外,我刚刚看到你对另一个答案的评论。您不认为指定您需要对url进行分组以替换您的问题很重要吗?是的,我需要提取文件名并更改其路径。
/@import[^u\"\']+(url[^\(]*\()?(|'|\")(\"|\')([^\"\']+)\.css/gi