У меня есть строка тегов html и список запрещенных тегов: Любой тег, который находится в запрещенных тегах, должен быть удален из str, кроме первого.Удалить все теги html из строки по списку, кроме первой
Может быть, это можно сделать с помощью одной петле строки
Я попытался следующую вещь:
var forbiddenTags = ["div", "city"];
var str = '<?xml version="1.0" encoding="UTF-8"?>' +
'<ADDUMP>' +
' <HEADER>' +
' <div></div>' +
' <div>Help Wanted Line</div>' +
' </HEADER>' +
' <ADINFO>' +
' <CUSTOMER>' +
' <CITY></CITY>' +
' <Div></DIV>' +
' <STATE></STATE>' +
' </CUSTOMER>' +
' </ADINFO>' +
'</ADDUMP>' +
'</xml>';
var arrayLength = forbiddenTags.length;
for (var i = 0; i < arrayLength; i++) {
// remove all forbiddenTags (upper and lower case)
var re = new RegExp("</? *" + forbiddenTags[i] + "[^>]*>","gi");
str = str.replace(re, "");
}
console.log(str);
К сожалению, есть две проблемы:
1) Он удаляет также первый тег строки, который находится в запрещенных тагах.
2) Он не удаляет содержимое тегов.
пример:
<div>hi</div>
<div>how</div>
<div></div>
должно быть:
<div>hi</div>
Это мой jsfiddle: http://jsfiddle.net/Ht6Ym/3469/
Любая помощь приветствуется!