簡體   English   中英

javascript正則表達式,用多行字符串中的單個實例替換多個實例

[英]javascript regex, replace multiple instances with a single one in multiline string

我在javascript中有一個多行字符串,如下所示:

"<p> </p>
<p> </p>
<p> </p>
<p> </p>
"

我試圖刪除<p> </p>的額外實例,所以我試圖使用以下正則表達式。

var content = getContent() // This returns the string mentioned above.
content = content.replace(/(<p> <\/p>)+/g, "<p> <\/p>");

但這似乎不起作用。 很可能因為字符串是一個多行字符串? 我用單行字符串嘗試了上面的正則表達式,它工作正常。 在閱讀了一些關於javascript正則表達式的文檔之后,我意識到我們需要使用m修飾符來處理多行字符串。 所以我把正則表達式改為:

content = content.replace(/(<p> <\/p>)+/gm, "<p> <\/p>"); // note the `m` modifier

但它仍然無效。 任何線索?

您應該替換所有空格(包括新行):

content = content.replace(/(<p>\s*<\/p>\s*)+/g, "<p> <\/p>");

示范

這個替換:

content = content.replace(/(<p> +<\/p>\n*)+/g, "<p> </p>");
/=> <p> </p>

暫無
暫無

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

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