You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! * escape-html * Copyright(c) 2012-2013 TJ Holowaychuk * Copyright(c) 2015 Andreas Lubbe * Copyright(c) 2015 Tiancheng "Timothy" Gu * MIT Licensed */
'use strict';
/** * Module variables. * @private */
var matchHtmlRegExp = /["'&<>]/;
/** * Module exports. * @public */
module.exports = escapeHtml;
/** * Escape special characters in the given string of html. * * @param {string} string The string to escape for inserting into HTML * @return {string} * @public */
function escapeHtml(string) { var str = '' + string; var match = matchHtmlRegExp.exec(str);
if (!match) { return str; }
var escape; var html = ''; var index = 0; var lastIndex = 0;
for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // "
escape = '"'; break; case 38: // &
escape = '&'; break; case 39: // '
escape = '''; break; case 60: // <
escape = '<'; break; case 62: // >
escape = '>'; break; default: continue; }
if (lastIndex !== index) { html += str.substring(lastIndex, index); }
lastIndex = index + 1; html += escape; }
return lastIndex !== index ? html + str.substring(lastIndex, index) : html; }
|