我有一大块 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/