希望从大量的javascript文件中删除评论

时间:2012-05-01 19:27:29

标签: javascript comments minify

这是我的困境:

我是一个菜鸟(目前实习并帮助维护两个电子商务网站)在javascript。我最近被分配删除了我们的javascript库中发生的所有注释(超过25,000条注释!)。显然我想找到一个函数或一些可以解析代码的预先存在的程序,删除//或* / ...之后的所有字符。

我已经研究过一些在线可用的缩小器,如Yui,jscompressor.com和uglifyJS,它们可以使这项任务更加自动化,但是存在一些问题。要么它们过于激进(缩短变量名称,删除所有空格等),要么它们要求您一次输入一行或一个文件。我正在处理1000个.js文件。

其他详细信息:我们的开发环境是Eclipse IDE和xammp;语言是html,php,css。

任何符合我需求的计划建议都会很棒!

3 个答案:

答案 0 :(得分:2)

仔细看看uglifyjs。默认情况下它既不压缩也不压缩(你必须分别给出-c和-m选项),你可以详细选择它做什么样的压缩,甚至可以指定哪种类型的正则表达式。要删除的评论。而且,如果你这么倾向的话,你甚至可以在出路上打印出来。那么使用它有什么问题呢?

答案 1 :(得分:0)

我知道这个问题已经有几年了 - 但是我找到的所有Javascript评论脱衣舞员都无法处理我试图删除的2.6mb Javascript文件。

我使用以下代码创建了一个jsfiddle,然后将2.6mb文件粘贴到文本框中,它对我有用:

$("textarea").val($("textarea").val().replace(/\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\//g,"")); /*remove these comment types*/

$("textarea").val($("textarea").val().replace(/\/\/.*/g,"")); // remove these comment types

https://jsfiddle.net/40okonqo/

希望它有所帮助。

信用:我使用此处的信息来帮助使用正则表达式:http://blog.ostermiller.org/find-comment

答案 2 :(得分:-1)

事实上,构建一个从javascript文档中删除所有注释的正则表达式并不容易。

基本解决方案是使用:

     yourJavascriptString.replace(/\/\*.+?\*\/|\/\/.*(?=[\n\r])/g, '');

不幸的是,它并不总是有效。如果您需要更完整的解决方案,请访问此网站:http://james.padolsey.com/javascript/removing-comments-in-javascript/