Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 regex只匹配本地CSS文件_Javascript_Regex_Html Parsing - Fatal编程技术网

Javascript regex只匹配本地CSS文件

Javascript regex只匹配本地CSS文件,javascript,regex,html-parsing,Javascript,Regex,Html Parsing,我需要从JavaScript中的HTML字符串中选择本地样式表。如何将以下内容转换为正则表达式 (file.indexOf('<link rel="stylesheet"') === 0) && (file.indexOf('href="http') === -1) (file.indexOf('HTML不是一种常规语言,使用解析器可以获得更好的结果。例如,如果rel属性位于href属性之后,该怎么办?这是有效的HTML语法,但不是您当前尝试处理的场景。这可能会导致问题

我需要从JavaScript中的HTML字符串中选择本地样式表。如何将以下内容转换为正则表达式

(file.indexOf('<link rel="stylesheet"') === 0) && (file.indexOf('href="http') === -1)
(file.indexOf('HTML不是一种常规语言,使用解析器可以获得更好的结果。例如,如果
rel
属性位于
href
属性之后,该怎么办?这是有效的HTML语法,但不是您当前尝试处理的场景。这可能会导致问题

但如果你坚持,你可以这样做:

/<link (?=[^>]*rel=\s*['"]stylesheet['"])(?![^>]*href=\s*['"]http)[^>]*>/i
/]*rel=\s*['”]样式表['”](?![^>]*href=\s*['”]http)[^>]*>/i

编辑1:处理属性的任意顺序


编辑2:处理单引号或双引号、大小写不敏感和间距

这是您要匹配的吗?为什么需要一个正则表达式?有更可靠的方法来处理它。也应该使用大小写不敏感,尽管这可能会因单引号(或无引号)而失败。var my_string=(document.head | | document.getElementsByTagName('head')[0]).innerHTML;(my_string.match(/]*rel=“stylesheet”)(?![^>]*href=“http)[^>]*>/i)==(my_string.indexOf('@ThanasisGrammatopoulos)我不太清楚你在说什么。你是说正则表达式不会产生与原始逻辑相同的结果吗?如果是,测试用例(有问题的
的HTML)将比您发布的JS代码更有用。我同意,我认为这个问题是错误的…第一个。indexOf不应该>=0?