2012-01-02 86 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