2011-01-12 54 views
0

我試圖從字符串刪除標籤:作物首先使用JavaScript最後的標籤,如果是同一個標籤

"<p>string</p>" must be converted to "string" 

我找到了解決方案,簡單的裁剪第一和最後一個標籤或所有標籤,然後

"<p>string1</p><p>string2</p>" converts to "string1</p><p>string2" 

我要檢查的字符串,像

"IF last </p> tag is closing tag for first <p> tag THEN crop" 

這是可以做到用正則表達式? 如果否,我認爲公式必須是這樣的:<p> tags equals 1, </p> equals -1.我開始總結這個數字從字符串結束,當總和等於零時停止。如果我停止的地方是字符串的結尾,那麼它就是一個標籤,我需要裁剪它。否則,它是不同的標籤。 但我不知道如何編碼,請幫助。

+0

嗨@Ink並歡迎來到該網站。可悲的是你所問的是我們最受歡迎的問題之一。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags ...可悲的是,這是網站的性質,以關閉重複的問題,可以真正回答其他更成熟的問題充滿了答案,但最好的答案是「使用圖書館」。在這種情況下,我會推薦jQuery。它會在很多方面做你想要的,例如http://api.jquery.com/unwrap/ – jcolebrand 2011-01-12 02:52:18

+0

謝謝,我會嘗試使用jQuery做一些檢查和替換功能。 – ink 2011-01-12 12:09:35

回答

0

我想我讓這個任務太複雜了。我忘了<p>標籤不能在另一個<p>。 然後我可以簡單地做檢查

if ($("#my_div>p").length == 1) { 
    // crop surrounding <p> 
} 

謝謝您的回答和對愚蠢的問題抱歉,我只是需要更多的睡眠。

0

我知道@drachenstern發佈了這個評論,幾乎回答你的問題,但仍然。您可以在replace()函數旁邊使用相當簡單的正則表達式。這個小函數應該可以做到這一點。

function stripTags(str) { 
    return str.replace(/<[^<]+?>/g, ''); 
} 
相關問題