我有一串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/
任何幫助表示讚賞!