javascript - 逗号运算符到分号

标签 javascript unminify

我有一大块 javascript 有很多 comma operators , 例如

"i".toString(), "e".toString(), "a".toString();

有没有办法用 JavaScript 将它们转换为分号?

"i".toString(); "e".toString(); "a".toString();

最佳答案

这似乎是一个逃避的答案……但我建议不要尝试。进行任何类型的字符串操作来更改它几乎是不可能的。除了函数定义参数列表之外,您还需要跳过字符串文字或正则表达式文字或函数调用或数组文字或对象文字或变量声明中的文本......甚至更多。正则表达式无法处理它,如您所见关键字无法处理它打开和关闭。

如果你想实际转换这些,你真的必须实际解析代码并找出哪些是逗号运算符。此外,在某些情况下,逗号的存在可能是相关的:

var a = 10, 20;

不一样

var a = 10; 20;

例如。

所以我真的不认为你应该尝试它。但如果您确实想要,我会先搜索一个 javascript 解析器(或编写一个,这不是很难,但可能需要一天的大部分时间,而且可能仍然存在错误)。我很确定更高级的压缩器(如 Google 的)包含一个解析器,也许它们的来源会有所帮助。

然后,您解析它以找到实际的逗号表达式。如果使用了返回值,请不要管它。如果没有,继续用表达式语句替换它们,然后重新生成源代码字符串。此时您也可以继续根据范围缩进对其进行格式化。它可能最终看起来很不错。这只是一大堆工作。

这是一个用 JS 编写的解析器库:http://esprima.org/ (感谢@torazaburo 的评论)

关于javascript - 逗号运算符到分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27073896/

相关文章:

javascript - 基于Jquery压缩js文件的算法?

javascript - 取消/解压缩 JavaScript 的工具

html - 如何取消最小化 min.css 文件?

javascript - 知识产权和缩小/混淆的 javascript 代码

javascript - 根据选择更新 RichCombo 的标签 - CKEditor

javascript - 使用对象解构语法设置先前初始化的变量的值

javascript - 我不断收到 'unable to get property ' 长度'未定义或空引用'

javascript - jquery.kyco.googleplusfeed.min.js 未缩小的源代码

javascript - 我应该将 javascript 框架与我的应用程序捆绑在一起还是使用公共(public) CDN?

javascript - 如何更改 for 循环中制作的圆圈的位置?