From db5f5ece0b6c87bbb2d0584010b97f8723dde69d Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Mon, 19 Dec 2011 16:39:47 -0800 Subject: [PATCH] Faster escapeHTML See http://jsperf.com/string-replace-function --- mustache.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mustache.js b/mustache.js index 47def07..cc42f3d 100644 --- a/mustache.js +++ b/mustache.js @@ -35,13 +35,18 @@ var Mustache = function () { } } + var escapeMap = { + "&": "&", + "<": "<", + ">": ">", + '"': '"', + "'": ''' + }; + function escapeHTML(string) { - return String(string) - .replace(/&(?!\w+;)/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); + return String(string).replace(/&(?!\w+;)|[<>"']/g, function (s) { + return escapeMap[s] || s; + }); } var regexCache = {};