我只是在 C# 应用程序中读取 JavaScript 文件,我需要知道 JavaScript 文件是否已缩小。 我能想到的唯一方法是计算以下比率,
缩小比例 = 换行数/文件大小
因此,在非缩小文件中,该值会更高,而在缩小文件中,该值会更小(可能小于 1)。
有没有更好的方法来做到这一点?
谢谢。
最佳答案
UglifyJS2 有类似 --beautify
的选项它保留新行,正确的方法是使用正则表达式 Paul S
建议或JInt的解析器,JavascriptParser.cs .
使用正则表达式查找function\((?<var>([a-z][a-z0-9]*)(,|\)
并检查所有 var 组的长度是否非常小。您可以检查根据变量长度声明的变量总数。
如果您想要更高级的版本,那么您可以使用 JInt 的 JavaScriptParser,它提供了抽象语法树,您可以在其中识别以下检查。
- 平均函数参数字符串长度是否小于 2,因为所有函数都定义为 function(a,b,c)...
- 您在 bool 比较表达式中遇到 !0 或 1 而不是“true”,以及 !1 或 0 而不是 false。
- 其他常见的缩小表达式,例如围绕大部分的 eval。
关于javascript - C# 如何识别缩小版 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29331621/