2012-01-02 77 views
0

這是我的字符串。這將使用正則表達式包含XML字符串
像下面正則表達式刪除字符串中標記之外的文本

var str= "<str>rvrv</str>rvrv<q1>vrvv</q1>vrvrv<q2>rtvrvr</q2>"; 

如何刪除文本之外的標籤(即不屬於任何標記文本。)。請幫助我。

+3

正則表達式是一種常規語言,因此不建議您爲此使用正則表達式。 – AlanFoster 2012-01-02 09:33:30

+0

@AlanFoster那麼我該如何實現這個...... – Exception 2012-01-02 09:37:16

+0

@Douglas感謝您的鏈接。這真的很有幫助 – Exception 2012-01-02 10:35:24

回答

3

假設您的問題是隻刪除文本中未封閉的元素中(和剩餘的代碼都已經形成,所以你有沒有串像

var str= "<str>lorem <b>ipsum</str>"; 

),你可以使用正則表達式這樣

var str= "<str>rvrv</str>rvrv<q1>vrvv</q1>vrvrv<q2>rtvrvr</q2>", 
    elements = str.match(/<(.+?)>[^<]+<\/\1>/gi); 

console.log(elements.join('')); 

,這將返回

<str>rvrv</str><q1>vrvv</q1><q2>rtvrvr</q2> 

注:能夠探測到我使用結束標籤反向引用 (請參閱http://www.regular-expressions.info/brackets.html

相關問題