All escaping functions replace HTML reserved characters.

This commit is contained in:
Chad Weider 2012-01-14 14:46:15 -08:00
parent 30da7357e5
commit 6e36b59a59
4 changed files with 20 additions and 5 deletions

View file

@ -429,14 +429,15 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback)
function _escapeHTML(s)
{
var re = /[&<>]/g;
var re = /[&"<>]/g;
if (!re.MAP)
{
// persisted across function calls!
re.MAP = {
'&': '&amp;',
'"': '&quot;',
'<': '&lt;',
'>': '&gt;',
'>': '&gt;'
};
}

View file

@ -142,7 +142,14 @@ function binarySearchInfinite(expectedLength, func)
function htmlPrettyEscape(str)
{
return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\r?\n/g, '\\n');
return str.replace(/[&"<>]/g, function (c) {
return {
'&': '&amp;',
'"': '&quot;',
'<': '&lt;',
'>': '&gt;'
}[c] || c;
}).replace(/\r?\n/g, '\\n');
}
if (typeof exports !== "undefined")

View file

@ -229,7 +229,7 @@ domline.escapeHTML = function(s)
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&#34;',
'"': '&quot;',
"'": '&#39;'
};
}

View file

@ -23,7 +23,14 @@
var padutils = {
escapeHtml: function(x)
{
return String(x).replace(/\</g, '&lt;').replace(/\>/g, '&gt;');
return String(x).replace(/[&"<>]/g, function (c) {
return {
'&': '&amp;',
'"': '&quot;',
'<': '&lt;',
'>': '&gt;'
}[c] || c;
});
},
uniqueId: function()
{