summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/htmlentities.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/strings/htmlentities.js')
-rw-r--r--node_modules/locutus/php/strings/htmlentities.js48
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