[英]JavaScript RegExp replace HTML comments
我正在尋找一種方法來替換字符串中所有html注釋,例如瀏覽器。 (多行和未封閉)
例如,我實際上使用/(<\\!--[\\s\\S]*?-->)/gim
但是如果未關閉html注釋,則不會替換它。
通常,如果注釋標簽未關閉,則注釋標簽將在打開標簽后獲取所有內容...
有沒有辦法使正則表達式(或任何其他正則表達式)適合做這些事情? (在JavaScript中)
這將標記所有注釋,也標記沒有注釋的注釋: <!-- some text -->
<!--[\s\S]*?(?:-->|$)
這將標記所有注釋,也標記沒有注釋的注釋: <!-- some text //-->
<!--[\s\S]*?(?://-->|$)
這將標記從文件的第一個<!--
到文件末尾的所有內容
<!--[\s\S]*?(?:$) and regex set to `^$ don't match at line breaks`
這將標記從第一行<!--
到行尾的所有內容
<!--.*
我必須同意,像這樣使用正則表達式不是一個好習慣,您不應該這樣做。 這就是原因 。
Buuuut,為了更好地了解正則表達式,您可以使諸如此類的可選內容:
/(<\\!--[\\s\\S]*?(?:-->)?)/gim
我用括號括起來-->
將其分組在一起
我放一個?
在該組之后使其成為可選
(不必要)我將?:
放在組內部,以防止正則表達式引擎保存反向引用...這是性能上的細微差別。
感謝@ Andie2302的幫助。
此正則表達式/<!--[\\s\\S]*?(?:-->|$)/gi
工作找到。
不要使用標志m
!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.