[英]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.