簡體   English   中英

使用JavaScript剝離標簽並處理換行符

[英]Strip tags with javascript and handle line breaks

我想從html中剝離標簽,但保留其換行符。

我想要像在瀏覽器中復制文本並將其粘貼在記事本中的行為。

例如,一個代碼轉換為:

  • <div>x1</div><div>x2</div>x1\\nx2
  • <p>x1</p><p>x2</p>x1\\nx2
  • <b>x1</b><i>x2</i>x1x2
  • x1<br>x2x1\\nx2

刪除所有標簽不起作用(/<.*?>/g)。 另外,創建一個虛擬<div>並將其設置為innertHTML並讀取其textContent將刪除換行符。

有幫助嗎?

這對您來說如何? 這將用\\n替換每次出現的<br></div></p> ,然后剝離其余標簽。 它愚蠢,但至少是一個開始。

fixed = text_to_fix.replace(/<(?:br|\/div|\/p)>/g, "\n")
           .replace(/<.*?>/g, "");

但是,這不適用於所有HTML。 只是您提到的標簽。

嘗試:

function strip_tags(str){
    return str
             .replace(/(<(br[^>]*)>)/ig, '\n')
             .replace(/(<([^>]+)>)/ig,'');
}

var str = '<div>x1</div><div>x2</div><br>'+'<p>x1</p><p>x2</p>'+'<b>x1</b><i>x2</i>';

這將剝離標簽並用新行替換<br /><br> ,但是為塊元素添加新行需要相當長的時間才能提出解決方案。

這是一個演示

暫無
暫無

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

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