【发布时间】:2017-05-10 23:08:41
【问题描述】:
我有这个正则表达式:
//remove quotes from HTML attributes that does not contain spaces; keep quotes around URLs
var $result = preg_replace('/((\S)+\s*(?<!href)(?<!src)(=)\s*)(\"|\')(\S+)(\"|\')/','$1$5', $string);
它几乎按预期工作,我只需要对其进行调整,但有一个额外的例外:允许从“img”标签的“src”属性中删除引号。
有人可以给我小费吗?任何帮助将不胜感激。
【问题讨论】:
-
为什么要取消引用属性值?
-
我正在创建一个 html 缩小脚本以在网站内部运行。
-
使用 DOM 解析器库而不是正则表达式来解析 HTML。
-
难道没有你可以使用的 HTML miniifcation 库,而不是自己滚动吗?
-
您需要使用 preg_replace_callback() 来执行此操作。首先匹配 img 标签,然后根据需要替换 src 属性上的引号。
标签: php regex replace preg-replace query-string