簡體   English   中英

JavaScript RegExp替換HTML注釋

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

  1. 我用括號括起來-->將其分組在一起

  2. 我放一個? 在該組之后使其成為可選

  3. (不必要)我將?:放在組內部,以防止正則表達式引擎保存反向引用...這是性能上的細微差別。

感謝@ Andie2302的幫助。

此正則表達式/<!--[\\s\\S]*?(?:-->|$)/gi工作找到。

不要使用標志m

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM