我正在尝试用php和JSMin动态压缩一个javascript文件。一切正常,但是当我尝试删除换行符时
$jsMinifiedClean = str_replace( array("\r","\n"),"",$jsMinified);我得到一个javascript解析错误。在快速搜索代码后,我发现了问题:
if( condition ) statement
else statement;"if“条件在行尾没有”;“。
为什么用YUI手动压缩的代码我得不到错误?为了避免使用JSMin压缩时出现的问题,if末尾的分号真的是强制性的吗?
发布于 2011-09-29 23:25:15
为了避免使用JSMin压缩时出现的问题,在if的末尾使用分号
真的是强制性的吗?
如果您删除换行符,就会发生这种情况。默认情况下,出于这个原因,JSMin不会删除换行符,这就是automatic semicolon insertion。从JSMin page
在省略换行符方面更为保守,因为换行符有时被视为分号。如果换行符位于非ASCII字符、ASCII字母或数字或以下字符之一之前,则不会忽略该换行符:
\$_{(+-
如果它跟在非ASCII字符、ASCII字母、数字或以下字符之一之后:
\$_})+-“‘
如果您随后删除了换行符,您将自己承担责任,以确保换行符不会因为ASI而变得重要。
https://stackoverflow.com/questions/7599551
复制相似问题