Sha256: 42a7f91883d0c5ce9292dda4e017e1f8664d34b09276d89fb6f3859c29d1ca9b

Contents?: true

Size: 1.33 KB

Versions: 90

Compression:

Stored size: 1.33 KB

Contents

/*!
 * 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 = '&quot;';
        break;
      case 38: // &
        escape = '&amp;';
        break;
      case 39: // '
        escape = '&#39;';
        break;
      case 60: // <
        escape = '&lt;';
        break;
      case 62: // >
        escape = '&gt;';
        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;
}

Version data entries

90 entries across 89 versions & 16 rubygems

Version Path
ilog-0.4.0 node_modules/escape-html/index.js
ilog-0.3.3 node_modules/escape-html/index.js
sumomo-0.8.7 data/sumomo/api_modules/node_modules/escape-html/index.js
sumomo-0.8.6 data/sumomo/api_modules/node_modules/escape-html/index.js
jester-data-8.0.0 node_modules/escape-html/index.js
ezii-os-5.2.1 node_modules/escape-html/index.js
ezii-os-2.0.1 node_modules/escape-html/index.js
ezii-os-1.1.0 node_modules/escape-html/index.js
ezii-os-1.0.0 node_modules/escape-html/index.js
ezii-os-0.0.0.1.0 node_modules/escape-html/index.js
ezii-os-0.0.0.0.1 node_modules/escape-html/index.js
blsk-sevcore-0.0.2 blsk_old/bluesky-doc/bluesky-doc/node_modules/escape-html/index.js
ela-4.1.6 node_modules/escape-html/index.js
ela-4.1.5 node_modules/escape-html/index.js
ela-4.1.4 node_modules/escape-html/index.js
ela-4.1.3 node_modules/escape-html/index.js
optimacms-0.4.3 spec/dummy/node_modules/escape-html/index.js
optimacms-0.4.2 spec/dummy/node_modules/escape-html/index.js
ela-4.1.2 node_modules/escape-html/index.js
sumomo-0.8.4 data/sumomo/api_modules/node_modules/escape-html/index.js