diff options
Diffstat (limited to 'node_modules/locutus/php/strings/strlen.js')
-rw-r--r-- | node_modules/locutus/php/strings/strlen.js | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/node_modules/locutus/php/strings/strlen.js b/node_modules/locutus/php/strings/strlen.js deleted file mode 100644 index 7c664d2..0000000 --- a/node_modules/locutus/php/strings/strlen.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - -module.exports = function strlen(string) { - // discuss at: http://locutus.io/php/strlen/ - // original by: Kevin van Zonneveld (http://kvz.io) - // improved by: Sakimori - // improved by: Kevin van Zonneveld (http://kvz.io) - // input by: Kirk Strobeck - // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman) - // revised by: Brett Zamir (http://brett-zamir.me) - // note 1: May look like overkill, but in order to be truly faithful to handling all Unicode - // note 1: characters and to this function in PHP which does not count the number of bytes - // note 1: but counts the number of characters, something like this is really necessary. - // example 1: strlen('Kevin van Zonneveld') - // returns 1: 19 - // example 2: ini_set('unicode.semantics', 'on') - // example 2: strlen('A\ud87e\udc04Z') - // returns 2: 3 - - var str = string + ''; - - var iniVal = (typeof require !== 'undefined' ? require('../info/ini_get')('unicode.semantics') : undefined) || 'off'; - if (iniVal === 'off') { - return str.length; - } - - var i = 0; - var lgth = 0; - - var getWholeChar = function getWholeChar(str, i) { - var code = str.charCodeAt(i); - var next = ''; - var prev = ''; - if (code >= 0xD800 && code <= 0xDBFF) { - // High surrogate (could change last hex to 0xDB7F to - // treat high private surrogates as single characters) - if (str.length <= i + 1) { - throw new Error('High surrogate without following low surrogate'); - } - next = str.charCodeAt(i + 1); - if (next < 0xDC00 || next > 0xDFFF) { - throw new Error('High surrogate without following low surrogate'); - } - return str.charAt(i) + str.charAt(i + 1); - } else if (code >= 0xDC00 && code <= 0xDFFF) { - // Low surrogate - if (i === 0) { - throw new Error('Low surrogate without preceding high surrogate'); - } - prev = str.charCodeAt(i - 1); - if (prev < 0xD800 || prev > 0xDBFF) { - // (could change last hex to 0xDB7F to treat high private surrogates - // as single characters) - throw new Error('Low surrogate without preceding high surrogate'); - } - // We can pass over low surrogates now as the second - // component in a pair which we have already processed - return false; - } - return str.charAt(i); - }; - - for (i = 0, lgth = 0; i < str.length; i++) { - if (getWholeChar(str, i) === false) { - continue; - } - // Adapt this line at the top of any loop, passing in the whole string and - // the current iteration and returning a variable to represent the individual character; - // purpose is to treat the first part of a surrogate pair as the whole character and then - // ignore the second part - lgth++; - } - - return lgth; -}; -//# sourceMappingURL=strlen.js.map
\ No newline at end of file |