2012-07-20 298 views
-1

我試圖從字符串中刪除HTML標記。現在我能夠刪除完整的HTML標籤,例如<div class="test">dadsasdsad</div>,給我輸出dadsasdsad從字符串中刪除html標記

但我無法刪除像class="test">dadsasdsad</div>testing<div class=

局部標籤的正則表達式的伊夫採用的是

strippedText[i] = fragments[i] 
        .replace(/<(?:.|\n)*?>/gm, '') 
        .replace(replaceAT, '<span style=font-weight:800>') 
        .replace(replaceET, '</span>'); 

這裏fragments[i]包含輸入<div class="test">dadsasdsad</div>;

+5

這是JavaScript內的網頁? HTML是來自頁面本身?在這種情況下,使用DOM函數更好;這就是他們在那裏的原因。 'text = thediv.firstChild.nodeValue' – 2012-07-20 08:54:40

+1

關於使用正則表達式清理/獲取HTML有很多許多問題。答案總是「不要使用正則表達式」。 – 2012-07-20 08:55:51

+0

你會如何區分普通文本中的「部分標籤」? – 2012-07-20 08:56:16

回答

0

使用javascript你可以這樣做:

function removeHTMLTags(htmlString) { 
    if(!htmlString) { return; } 
    var mydiv = document.createElement("div"); 
    mydiv.innerHTML = htmlString; 
    return mydiv.textContent || mydiv.innerText || ''; 
} 

[Source]

+1

你也可以這樣做:'return mydiv.textContent || mydiv.innerText || '';'。 – 2012-07-20 08:56:42

+1

而你想要的是,你不想檢測一件事('document.all'),然後依賴別的東西('innerText')。 – 2012-07-20 08:58:42

+0

任何人都知道hw使用開始和$ ^方法結束...這是我的問題.. – user1371896 2012-07-20 09:00:56

0

簡單 JavaScript庫有一個名爲 「用strip_tags()」 函數做長期爲您工作。

只要說你有裝載HTML格式標記的文章,要刪除它們,只需像這樣做:

strip_tags("<p>This <em>sentence</em> contains <strong>a lot</strong> of tags!</p>"); 

這將輸出「這句話包含了很多的標籤!」 (在文檔網站上測試)。

要了解關於此功能的更多信息,請閱讀文檔http://docs.funcjs.webege.com/strip_tags().html,如果可能,請通過網站上的反饋表留下反饋意見。

希望這可以幫助你和其他人有同樣的問題! :)

2
strippedText[i] = fragments[i] 
// full tags 
.replace(/<[^>]+>/gm, '') 
// partial tags 
.replace(/^[^>]+>/gm, '') 
.replace(/<[^>]+$/gm, ''); 

請注意^有不同的含義:括號內的「不」,括號外的「開始」。

/gm不應該是部分標籤所必需的,但我留下了它們,因爲我不知道您的上下文以及如何獲取部分標籤。