[英]Commenting out regex, javascript
抱歉,如果这已经被覆盖 - 也许我正在寻找错误的东西。
以下注释掉的行会产生语法错误:
/* /[foo].*/ */
正则表达式中的 '*/' 似乎与评论的结尾混淆了。
有没有办法安全地注释掉包含正则表达式的代码块?
这个主题出现在许多编程语言中。
我用特殊字符标记看起来像评论结尾的地方,以便以后可以轻松找到它们以撤消评论。 首先它看起来像这样:
/* comment start here var emailBlabla = someString.replace(/^\s*/, '').replace(/\s*$/, ''); comment ends here */
然后:
/* comment start here var emailBlabla = someString.replace(/^\sx*x/x, '').replace(/\s*$/, ''); // <<< note x*x/x comment ends here */
现在,每当我想取消注释时,我只需查找序列 x*x/x。
请注意,这不适用于标签,例如上下文 Fluid/TYPO3:
<f:comment>
如果你想“停用”这个标签而不删除它,这将不起作用:
x<fx:xcomment>
因为解析器仍然看到一个带有命名空间的标签,而命名空间只是更改为 fx。 在标签的上下文中,你必须打破空间。
x < fx: xcomment>
但即便如此,您也有一个明确标记的情况,您可以在其中使用查找/替换。
这是一个错误,因为您不能在注释中包含*/
,否则它会终止注释,然后最后一个*/
会自行出错。 只需添加一个空格:
/* /[foo].* / */
或注释掉整行:
// /[foo].*/
如果您拥有 string 并以编程方式添加注释块,则只需将所有*/
替换为* /
:
var final = '/*' + code.replace(/\*\//g, '* /') + '*/';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.