Konta's Blog

適当に書いていきます

チャットで改行をそのまま反映させつつHTMLなどはエスケープする方法

ユーザーの入力を以下の関数でエスケープして要素.innerHTMLに渡した

function escapestr(str){
     str = str.replace(/&/g,'&amp');
     str = str.replace(/</g, '&lt;');
     str = str.replace(/>/g, '&gt;');
     str = str.replace(/"/g, '&quot;');
     str = str.replace(/'/g, '&#39;');
     str = str.replace(/\n/g, '<br>');
     return str;
   }
<||