如何评论包含正则表达式的块

时间:2013-10-12 18:51:31

标签: javascript

您知道是否有一种聪明的方法来评论包含正则表达式的代码块 包含* /?

例如,我发现自己正在评论包含此指令的块:

...

messageParser.run('messageFetched',/.*/);

...

但如果我评论该块:

/*

messageParser.run('messageFetched',/.*/);

*/

然后javascript将regexp解释为注释关闭,无法解析文件。我试图将//放在违规行前面,但它没有帮助,我不想评论块中的每一行,也不会改变正则表达式。

有一种聪明的方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:2)

将正则表达式修改为/(.*)/

messageParser.run('messageFetched',/(.*)/);

/*
messageParser.run('messageFetched',/(.*)/);
*/

答案 1 :(得分:2)

我的“聪明”方式......

将代码移动到一个函数中,如下所示:

function mP () {
   messageParser.run('messageFetched',/.*/);
}

然后您可以使用

/*
mP();
*/

基本上,它会将正则表达式移开,这样您就可以自由使用块注释而无需修改正则表达式代码。

答案 2 :(得分:1)

我知道我迟到了,因为已经选择了最佳答案,但是既然你正在寻找一个“聪明的伎俩”,我建议以一个空的非捕获组结束:

/.*(?:)/

相当于:

/.*/

如果您不想更改任何代码,这是最方便的。 (例如,通过重构或引入捕获组的副作用。)它在语义上也是相同的(引入捕获组不会,并且可能导致逻辑需要重写)并且与功能相比具有更少的负面性能影响代理功能。

官方ECMAScript规范(JavaScript语言所基于的)实际上建议使用空的非捕获组/(?:) /来表示“空”正则表达式。