正则表达式只匹配本地CSS文件

时间:2015-04-18 14:36:15

标签: javascript regex html-parsing

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

(file.indexOf('<link rel="stylesheet"') === 0) && (file.indexOf('href="http') === -1)

1 个答案:

答案 0 :(得分:1)

Don't parse HTML with regex! HTML不是常规语言,使用解析器可以获得更好的结果。例如,如果rel属性位于href属性之后,该怎么办?这是有效的HTML语法,但不是您当前正在尝试处理的方案。这可能会导致问题。

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

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

Demo

编辑1:处理属性的顺序

编辑2:处理单引号或双引号,不区分大小写和间距