2014-03-14 113 views
7

我製作了一個div標記並將其內容存儲在一個變量中。如果此標籤包含p,b或任何其他標籤,則應將其從字符串中刪除。我怎樣才能做到這一點?如何使用Javascript/jQuery從div內容中去除HTML標籤?

+0

添加的jsfiddle向我們展示[從文本JavaScript的HTML地帶]的一些代碼 – Abhidev

+0

可能的複製(http://stackoverflow.com/questions/822452/strip-html-from-text-javascript ) – nhahtdh

回答

15

使用正則表達式。

var regex = /(<([^>]+)>)/ig 
var body = "<p>test</p>" 
var result = body.replace(regex, ""); 

alert(result); 

這裏是DEMO

希望這有助於。

+0

+1,我測試了這個...它真的很棒... http://jsfiddle.net/cjramki/Efu4f/ –

+0

標記爲已解決。如果這有幫助 – UmarKashmiri

+0

我應該在你的答案中添加小提琴演示嗎?我認爲這會改善你的答案... –

8

你可以按照這個例子

var stringContent = "<p>Hi dear</p><p>Wish you a happy birthday</p>"; 

var text = $(stringContent).text(); 
+0

這引發錯誤,例如字符串'dsdsds [' – xMort

0

解決方案使用jQuery:

var content = "<p>Dear Andy,</p><p>This is a test message.</p>"; 

var text = $(content).text(); 

解決方案使用JavaScript:

function removeTags(){ 
    var txt = document.getElementById('myString').value; 
    var rex = /(<([^>]+)>)/ig; 
    alert(txt.replace(rex , "")); 

} 

而且看起來這個鏈接: Strip HTML Tags in JavaScript

1

使用普通的JavaScript,你可以做到這一點作爲

string.replace(/(<([^>]+)>)/ig,""); 

我想,這大概比的.text()方法更快。

5

這是更安全:

function plaintext(html){ 
    return $("<div/>").html(html).text(); 
} 
+1

這是一個超級乾淨的解決方案,謝謝! – Overcode

3

我想上公認的答案這是在暗示正則表達式var regex = /(<([^>]+)>)/ig的頂部添加了一些東西


最終代碼:

var regex = /<\/?\w+[^>]*\/?>/g, 
    body = "<sTrong><b>test<b></STRONG><b> sss</b><em> what if you write some maths: i < 2 && i > 4.</em>"; 

alert(body.replace(regex, "")); 

它也可以幫助把在內置的「字符串」類的功能,所以你可以這樣做直接:

"<em>test</em>".stripTags()

String.prototype.stripTags = function() 
{ 
    return this.replace(/<\/?\w+[^>]*\/?>/g, ''); 
}; 

最後,如果你的字符串是一個DOM節點,你可以做alert(element.innerText || element.textContent);這是內置的和更安全!這裏見例如:http://jsfiddle.net/66L6nfwt/6/

相關問題