2016-09-17 37 views
0

我有一些HTML表示爲字符串。以字符串形式包裝HTML與<span>

例如:

var testHTMLString = "<div class='a'>test content</div>" 

我希望能夠使用正則表達式,並通過其標籤拆分這個HTML字符串,敷打散標籤片與<span class='red'></span>以突出的HTML字符串

預期的結果:

<span class='red'>"<div class='a'>"</span>test content<span class='red'>"</div>"</span> 

我似乎無法獲得正則表達式在我的程序正確的,但在正則表達式測試它似乎s到工作

testHTMLString.split("/<(\/)?div.*?>/g");不分裂我的HTML字符串轉換成我想要的作品 - >"<div class='a'>""</div>"

+1

[如果您知道要做什麼,可以使用RegEx解析HTML](http://stackoverflow.com/a/4234491/1020526) – revo

+0

我想要做的就是用''封裝一個有針對性的HTML標記以突出顯示它...... – Liondancer

+0

你也可以嘗試用'split'/'join'方法來代替正則表達式 –

回答

0

你已經回答了你的問題。但你忘了返回應用的更改:

function highlightTag(pageSource, tag) { 
    var re = new RegExp("<(\/)?" + tag + ".*?>", "g"); 
    newPageSource = pageSource.replace(re, "<span class='red'>" + tag + "</span>"); 
    return newPageSource; 
} 

此外,並沒有完全做你想要的。這是:

function highlightTag(pageSource, tag) { 
    var re = new RegExp("(<\/?" + tag + "[^<>]*>)", "g"); 
    return pageSource.replace(re, "<span class='red'>\"$1\"</span>"); 
} 
+0

啊,我明白我出錯的地方了。謝謝。我玩過你修改過的功能,它似乎做我想要的。就像我剛纔提到的那樣,我實際上需要'.split()'。我相應地改變了我的功能。謝謝。 'split()'將返回一個列表,我可以創建一些HTML,用'' – Liondancer

相關問題