Spaces:
Running
Running
/*! | |
* escape-html | |
* Copyright(c) 2012-2013 TJ Holowaychuk | |
* Copyright(c) 2015 Andreas Lubbe | |
* Copyright(c) 2015 Tiancheng "Timothy" Gu | |
* MIT Licensed | |
*/ | |
; | |
/** | |
* 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; | |
} | |