簡體   English   中英

替換javascript中重復的html-tags

[英]replace repeating html-tags in javascript

我正在使用quill.js編輯器來允許用戶編寫評論。 quill.js的問題是,如果他們按Enter鍵,則會生成一個新的參數。

<p><br></p>

這使他們可以創建無限的新行。 例如輸入:

fffff ffff fff
fff


fffffff



ff

將生成此html:

<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p><br></p>
<p><br></p>
<p>ff</p>

但我想得到這樣的結果:

<p>fffff ffff fff</p>
<p>fff</p>
<p><br></p>
<p>fffffff</p>
<p><br></p>
<p>ff</p>

因此,如果重復換行代碼,則應將其替換為一行新行。 我該怎么做呢?

如果您確實沒有其他選擇,則可以執行以下操作:

 function cleanupHtml() { document.body.innerHTML = document.body.innerHTML.replace(/<p><br><\\/p>/gi, ''); } document.addEventListener('DOMContentLoaded', cleanupHtml); 
 <p>fffff ffff fff</p> <p>fff</p> <p><br></p> <p><br></p> <p>fffffff</p> <p><br></p> <p><br></p> <p><br></p> <p>ff</p> 

您可以檢查是否出現了兩次或多次<p><br></p>后接新行;如果是,則用一個新行替換它,如下所示:

 const markup = ` <p>fffff ffff fff</p> <p>fff</p> <p><br></p> <p><br></p> <p>fffffff</p> <p><br></p> <p><br></p> <p><br></p> <p>ff</p> <p><br></p> `; const result = markup.replace(/(<p><br><\\/p>\\n){2,}/g, '<p><br><\\/p>\\n'); console.log(result); 

您甚至可以:

 const markup = ` <p>fffff ffff fff</p> <p>fff</p> <p><br></p> <p><br></p> <p>fffffff</p> <p><br></p> <p><br></p> <p><br></p> <p>ff</p> <p><br></p> `; const target = '<p><br><\\/p>\\n'; const result = markup.replace(new RegExp(`(${target}){2,}`, 'g'), target); console.log(result); 

因此,您將來可以輕松更改元素。

暫無
暫無

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

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