解析器:如何将JavaScript字符串转换为一行JavaScript?

时间:2014-02-05 20:39:44

标签: javascript jquery

我正在尝试创建一个解析器,用于以上下文格式格式化JavaScript。首先,我希望能够将输入JavaScript转换为一行JavaScript,然后根据我的要求格式化代码。这不会删除所有输入或空格:

txt = $.trim(txt);
txt = txt.replace("\n", "");

如何将文字转换为一行?

4 个答案:

答案 0 :(得分:5)

使用设置了“global”标志的正则表达式:

txt.replace(/\n/g, "");

但是,您应该小心删除Javascript中的换行符。您可能会破坏依赖于分号插入的代码。你为什么不使用像Esprima这样的现成解析器?

答案 1 :(得分:2)

使用:

  • \ s代表任何空格字符的字符(回车,换行,标签,空格......)
  • “贪婪”的g旗。

    var text = txt.replace(/ \ s + / g,'');

希望有所帮助

答案 2 :(得分:0)

如果文本来自某些操作系统,则可能会以\r\n行结束,因此值得同时删除...

您还应该使用/\r/g替换所有\r而不仅仅是第一个。

var noNewLines = txt.replace(/\r/g, "").replace(/\n/g, "");

你必须非常确定没有单行注释,并且没有遗漏的分号。

答案 3 :(得分:-1)

您可以尝试使用https://javascript-minifier.com/之类的代码来缩小代码 但这也会更改您的变量名