您知道是否有一种聪明的方法来评论包含正则表达式的代码块 包含* /?
例如,我发现自己正在评论包含此指令的块:
...
messageParser.run('messageFetched',/.*/);
...
但如果我评论该块:
/*
messageParser.run('messageFetched',/.*/);
*/
然后javascript将regexp解释为注释关闭,无法解析文件。我试图将//放在违规行前面,但它没有帮助,我不想评论块中的每一行,也不会改变正则表达式。
有一种聪明的方法可以做到这一点吗?
答案 0 :(得分:2)
将正则表达式修改为/(.*)/
:
messageParser.run('messageFetched',/(.*)/);
/*
messageParser.run('messageFetched',/(.*)/);
*/
答案 1 :(得分:2)
我的“聪明”方式......
将代码移动到一个函数中,如下所示:
function mP () {
messageParser.run('messageFetched',/.*/);
}
然后您可以使用
/*
mP();
*/
基本上,它会将正则表达式移开,这样您就可以自由使用块注释而无需修改正则表达式代码。
答案 2 :(得分:1)
我知道我迟到了,因为已经选择了最佳答案,但是既然你正在寻找一个“聪明的伎俩”,我建议以一个空的非捕获组结束:
/.*(?:)/
相当于:
/.*/
如果您不想更改任何代码,这是最方便的。 (例如,通过重构或引入捕获组的副作用。)它在语义上也是相同的(引入捕获组不会,并且可能导致逻辑需要重写)并且与功能相比具有更少的负面性能影响代理功能。
官方ECMAScript规范(JavaScript语言所基于的)实际上建议使用空的非捕获组/(?:) /来表示“空”正则表达式。