Spaces:
Sleeping
Sleeping
| /*! | |
| * 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; | |
| } | |