結果不對function htmlEscape(text){return text.replace(/[<>"&]/g,function(match,pos,originalText){switch(match){case "<":return "<";case ">":return ">";case "&":return "&";case "\"":return """;}});}var test=htmlEscape("<p>something.</p>")document.write(test)百度把lt gt amp這些轉換了,return后面是實體
3 回答

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
應該這么寫:
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}

猛跑小豬
TA貢獻1858條經驗 獲得超8個贊
你應該是需要html編碼和解碼,我這里有個比較巧妙的方式
1234567891011121314151617181920212223 | //js版 //Html編碼獲取Html轉義實體 function htmlEncode(value) { var e = document.createElement( 'div' ); e.innerText = value; return e.innerHTML; } //Html解碼獲取Html實體 function htmlDecode(value) { var e = document.createElement( 'div' ); e.innerHTML = value; return e.innerText; } //jQuery版 //Html編碼獲取Html轉義實體 function htmlEncode(value){ return $( '<div/>' ).text(value).html(); } //Html解碼獲取Html實體 function htmlDecode(value){ return $( '<div/>' ).html(value).text(); } |
添加回答
舉報
0/150
提交
取消