[英]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>x2
到x1\\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.