正则表达式,用于删除字符串中标记之外的文本

时间:2012-01-02 09:31:18

标签: javascript regex

这是我的字符串。其中包含XML字符串
如下所示

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

如何使用正则表达式删除标签外部的文本(不属于任何标签的文本)。请帮帮我。

1 个答案:

答案 0 :(得分: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