【发布时间】:2015-11-18 00:03:41
【问题描述】:
我有一串 html 标签和一个禁止标签列表: 应该从 str 中删除在 disabledTags 中找到的任何标签,除了第一个标签。
也许可以通过字符串的一个循环来完成
我尝试了下一件事:
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/
任何帮助表示赞赏!
【问题讨论】:
标签: javascript