Регулярное выражение для удаления текста вне тегов в строке
Вот моя строка Который будет содержать строку 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)