我花了一些时间寻找转义 html 字符串的最佳方法,并找到了一些关于此的讨论:讨论 1 讨论 2。它引导我替换所有功能。然后我进行了性能测试并试图找到实现类似速度但没有成功的解决方案:(
这是我的最终测试用例集。我在网上找到了它并通过我的尝试进行了扩展(底部有 4 个案例),但仍然无法达到replaceAll()
性能。
什么是秘密女巫使replaceAll()
解决如此迅速?
问候!
代码片段:
String.prototype.replaceAll = function(str1, str2, ignore)
{
return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2);
};
qwerty的学分
迄今为止最快的情况:
html.replaceAll('&', '&').replaceAll('"', '"').replaceAll("'", ''').replaceAll('<', '<').replaceAll('>', '>');