我正在尝试创建一个解析器,用于以上下文格式格式化JavaScript。首先,我希望能够将输入JavaScript转换为一行JavaScript,然后根据我的要求格式化代码。这不会删除所有输入或空格:
txt = $.trim(txt);
txt = txt.replace("\n", "");
如何将文字转换为一行?
答案 0 :(得分:5)
使用设置了“global”标志的正则表达式:
txt.replace(/\n/g, "");
但是,您应该小心删除Javascript中的换行符。您可能会破坏依赖于分号插入的代码。你为什么不使用像Esprima这样的现成解析器?
答案 1 :(得分:2)
使用:
“贪婪”的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/之类的代码来缩小代码 但这也会更改您的变量名