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.
		
		
		
		
		
			
		
			
				
					79 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					79 lines
				
				1.3 KiB
			| 
											3 years ago
										 | /*! | ||
|  |  * 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; | ||
|  | } |