2011-07-27 39 views
5

我想從html中去除標籤,但保留換行符。使用javascript處理換行標籤和處理換行符

我想要在瀏覽器中複製文本並將其粘貼到記事本中的行爲。

例如,代碼轉換:

  • <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將刪除換行符。

任何幫助?

回答

2

嘗試:

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>,但添加新的線塊元素需要相當長的一段時間來了一個解決方案。

Here is a demo

3

這項工作如何爲您服務?這將用\n代替<br>,</div></p>的每次出現,然後剝離其餘標記。它的愚蠢,但至少有一個開始。

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

這並不適用於所有的HTML工作,但是。只是你提到的標籤。

+0

DIV,P和Br只是衆多標籤的例子,導致線路中斷(小時,李,TR,...) –