Я потратил некоторое время на лучший способ избежать html-строки и нашел некоторые дискуссии по этому поводу: обсуждение 1 обсуждение 2. Это приводит меня к replaceAll. Затем я сделал тесты производительности и попытался найти решение, добившееся такой же скорости без успеха: (
Вот мой окончательный набор тестов. Я нашел его в сети и расширил свои попытки (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('>', '>');