function convertHTML(str) {
var objA={'&':'&','<':'<','>':'>','\'':''','"':'\"'}
var matchStr = str.match(/([&|''|""|>|<])/g)
var matchStr1=''
for(var i=0; i<matchStr.length; ++i){
matchStr1 = str.replace(matchStr[i], objA[matchStr[i]])
}
return matchStr1;
}
console.log(convertHTML("Hamburgers < Pizza < Tacos "));
输出我得到的是Hamburgers &​lt; Pizza < Tacos
。我想要Hamburgers &​lt; Pizza &​lt; Tacos
。那么是否可以使用此代码替换第二次出现的更改?。
答案 0 :(得分:1)
我建议你使用以下方法。
{{1}}&#13;
答案 1 :(得分:0)
问题在于:
matchStr1 = str.replace(matchStr[i], objA[matchStr[i]])
在每次迭代中,“str”始终是相同的。
您的代码已修复:
function convertHTML(str) {
var objA={'&':'&','<':'<','>':'>','\'':''','"':'\"'}
var matchStr = str.match(/([&|''|""|>|<])/g);
for(var i=0; i<matchStr.length; ++i){
str = str.replace(matchStr[i], objA[matchStr[i]])
}
return str;
}
console.log(convertHTML("Hamburgers < Pizza < Tacos "));