Регулярное выражение для удаления текста вне тегов в строке

Вот моя строка Который будет содержать строку XML
Как ниже

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

Как я могу удалить текст вне тегов (текст, который не принадлежит ни одному тегу.) С помощью регулярного выражения. Пожалуйста помоги мне с этим.

1 ответ

Решение

Предполагая, что ваша проблема заключается только в удалении текста, не заключенного в элемент (а оставшийся код правильно сформирован, поэтому у вас нет таких строк, как

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)

Другие вопросы по тегам