把被編碼後的HTML tag字串轉回HTML

把被編碼後的HTML tag轉回HTML,這個問題很常遇到,但每次都沒有特別記下來,每次遇到一樣的問題再去google如何把編碼過後的特殊符號轉回HTML,今天又遇到了,剛好又開著點部落,於是就順便把問題記錄下來

開發時很常遇到一種情況,例如:後端組好錯誤訊息字串後,丟到前端顯示錯誤訊息內容,有時候錯誤訊息內容可能會需要加上<br>換行符號HTML tag,但是<br>這個HTML tag很有可能被有心人士擷取錯誤訊息字串後再標籤內插入javascript來做XSS攻擊(可能是透過javascript亂插入圖片,系統首頁就被掛上五星旗之類的…),所以會先進行編碼把<br>轉成&lt;br&gt;。如果要把&lt;br&gt;轉回正常的HTML Tag的話可以使用下面方法,到時前端顯示的錯誤訊息內容就是有換行效果的樣式囉!

var decoded = $('<div/>').html('test error msg<br>').text();