79 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/*!
							 | 
						||
| 
								 | 
							
								 * 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;
							 | 
						||
| 
								 | 
							
								}
							 |