【发布时间】:2019-08-28 06:32:27
【问题描述】:
我想使用 PHP && Regex 代码缩小 HTML 代码
缩小功能:
public static function sanitize_output($buffer) {
$search = array(
'/ {2,}/',
'/<!--.*?-->|\t|(?:\r?\n[ \t]*)+/s'
);
$replace = array(
' ',
''
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
我在渲染模板(HTML 文件)时使用此功能,但在控制台上总是出现此错误
SyntaxError: missing } in complex statement note: { opens at line
缩小代码在Js代码上删除了一些“{”,有没有解决这个问题的方法?
经过一番搜索,我发现错误在JS cmets中,当我缩小HTML代码时,cmets与代码连接在一起。
我尝试使用这个正则表达式
/\/\*[\s\S]*?\*\/|([^:]|^)\/\/.*$/
但它不起作用
【问题讨论】:
-
有预制的 PHP 缩小解决方案可用,为什么要自己编写一个代码?用于 HTML 的 RegEx 是一个坏主意,即使是为了缩小,使用成熟的解析器也是一个更好的主意。
-
@Connum 先生这是什么方法?
-
通过一些搜索我发现错误是由 JS 注释引起的,是否有任何正则表达式可以删除 JS 注释?
-
有什么解决办法吗?
-
你不能使用 RegEx 来解析 HTML 以免你召唤不应该被命名的人stackoverflow.com/questions/1732348/…
标签: javascript php html