diff options
Diffstat (limited to 'node_modules/locutus/php/strings/htmlentities.js')
-rw-r--r-- | node_modules/locutus/php/strings/htmlentities.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/locutus/php/strings/htmlentities.js b/node_modules/locutus/php/strings/htmlentities.js new file mode 100644 index 0000000..2cba4e5 --- /dev/null +++ b/node_modules/locutus/php/strings/htmlentities.js @@ -0,0 +1,48 @@ +'use strict'; + +module.exports = function htmlentities(string, quoteStyle, charset, doubleEncode) { + // discuss at: http://locutus.io/php/htmlentities/ + // original by: Kevin van Zonneveld (http://kvz.io) + // revised by: Kevin van Zonneveld (http://kvz.io) + // revised by: Kevin van Zonneveld (http://kvz.io) + // improved by: nobbler + // improved by: Jack + // improved by: RafaĆ Kukawski (http://blog.kukawski.pl) + // improved by: Dj (http://locutus.io/php/htmlentities:425#comment_134018) + // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman) + // bugfixed by: Brett Zamir (http://brett-zamir.me) + // input by: Ratheous + // note 1: function is compatible with PHP 5.2 and older + // example 1: htmlentities('Kevin & van Zonneveld') + // returns 1: 'Kevin & van Zonneveld' + // example 2: htmlentities("foo'bar","ENT_QUOTES") + // returns 2: 'foo'bar' + + var getHtmlTranslationTable = require('../strings/get_html_translation_table'); + var hashMap = getHtmlTranslationTable('HTML_ENTITIES', quoteStyle); + + string = string === null ? '' : string + ''; + + if (!hashMap) { + return false; + } + + if (quoteStyle && quoteStyle === 'ENT_QUOTES') { + hashMap["'"] = '''; + } + + doubleEncode = doubleEncode === null || !!doubleEncode; + + var regex = new RegExp('&(?:#\\d+|#x[\\da-f]+|[a-zA-Z][\\da-z]*);|[' + Object.keys(hashMap).join('') + // replace regexp special chars + .replace(/([()[\]{}\-.*+?^$|/\\])/g, '\\$1') + ']', 'g'); + + return string.replace(regex, function (ent) { + if (ent.length > 1) { + return doubleEncode ? hashMap['&'] + ent.substr(1) : ent; + } + + return hashMap[ent]; + }); +}; +//# sourceMappingURL=htmlentities.js.map
\ No newline at end of file |