【发布时间】:2014-09-08 16:02:30
【问题描述】:
我正在尝试可靠地去除 Java 或 Scala 中的 Javascript 多行和单行 cmets。即使它需要运行外部程序,也可以(但并不理想)。必须有一些库或工具来执行此操作。我看过这篇文章:
http://james.padolsey.com/javascript/removing-comments-in-javascript/
并将其转换为 Scala。但他的逻辑在几个不同的方面被打破了。一个问题是它不能正确区分除法和正则表达式的开始。它也不能在所有情况下处理转义序列。我一直在尝试修复这段代码,但它很棘手——尤其是区分正则表达式和除法。
我不想在这里重新发明轮子,也不想构建一个糟糕的 Javascript 解析器。有什么想法吗?
【问题讨论】:
-
示例输入和输出会有帮助
-
您有两个评论案例,即
//用于单行,/*...*/用于多行,对吗?对这三种特定模式使用子字符串搜索功能可能是您最好的选择... -
不确定输入和输出是什么意思。输入可以是任何可能的 Javascript。输出将是相同的文本,但删除了所有 cmets...
-
@abiessu,我认为这过度简化了事情,因为您可能在字符串或正则表达式文字中
-
您是否考虑过使用正则表达式条带,该条带会沿着
/** etc etc**/和// etc etc \n的行移动某些内容
标签: java javascript regex scala