解决方案代码存在问题-它只会转义每个特殊字符的第一次出现。例如:
escapeHtml('Kip's <b>evil</b> "test" pre's here');Actual: Kip's <b>evil</b> "test" pre's hereExpected: Kip's <b>evil</b> "test" pre's here
这是正常工作的代码:
function escapeHtml(text) { return text .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """) .replace(/'/g, "'");}
更新资料
以下代码将产生与上面相同的结果,但是它的性能更好,尤其是在大块文本上(感谢jbo5112)。
function escapeHtml(text) { var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, function(m) { return map[m]; });}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)