将内联注释返回到新行

时间:2016-05-23 23:48:00

标签: javascript regex

我试图逐行解析代码块。有没有办法获取内联评论并将其返回到下一行?我会想象使用正则表达式,但我无法想出表达式。 例如:

if(foo) { //Executes bar function
  bar();
}

将是

if(foo) { 
  //Executes bar function
  bar();
}

2 个答案:

答案 0 :(得分:1)

使用JavaScript,可以执行以下操作:将所有代码转换为字符串,然后使用/(\/\/.+$)/g捕获内联注释,然后使用replace代码:

 stringVar.replace(/(\/\/.+$)/, '\n\t $1 \n').

如果您有支持正则表达式的文本编辑器或IDE,则可以分别对.replacefind选项使用上述replace模式。

答案 1 :(得分:1)

要匹配所有单行 - 不在空行中的注释,您可以使用以下正则表达式:

/^.*\S+.*(\/\/.*$)/mg

https://regex101.com/r/fU5lO4/1

例如

console.log("hello"); // this comment will be matched
// this comment won't be matched
         // this comment won't be matched

您可以使用换行符+本身替换找到的评论。 (也许可以添加一些空格?)

示例

 yourText.replace(/^(.*\S+.*)(\/\/.*$)/mg, '$1\n $2' );