我有一串html标记和一个禁止标记列表: 任何在forbiddenTags中找到的标记都应该从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)它也消除了在forbiddenTags中找到的字符串的第一个标记。
2)它不会删除标签的内容。
例如:
<div>hi</div>
<div>how</div>
<div></div>
应该是:
<div>hi</div>
这是我的jsfiddle: http://jsfiddle.net/Ht6Ym/3469/
任何帮助表示赞赏!