【问题标题】:Strip Javascript Comments in Java/Scala Program在 Java/Scala 程序中去除 Javascript 注释
【发布时间】: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


【解决方案1】:

我认为应该有一个工具来帮助你,但作为另一种选择,你可以使用这样的正则表达式:

//.*|/\*[\S\s]+?\*/

Working demo

【讨论】:

  • 如果代码中有这样一行怎么办?:console.log('Comments in javascript are denoted by //comment text here')
猜你喜欢
  • 2019-04-27
  • 2016-02-02
  • 1970-01-01
  • 2012-03-01
  • 2014-08-27
  • 2019-12-26
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
相关资源
最近更新 更多