diff options
Diffstat (limited to 'node_modules/locutus/php/strings/strncasecmp.js')
-rw-r--r-- | node_modules/locutus/php/strings/strncasecmp.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/node_modules/locutus/php/strings/strncasecmp.js b/node_modules/locutus/php/strings/strncasecmp.js new file mode 100644 index 0000000..8a4b912 --- /dev/null +++ b/node_modules/locutus/php/strings/strncasecmp.js @@ -0,0 +1,55 @@ +'use strict'; + +module.exports = function strncasecmp(argStr1, argStr2, len) { + // discuss at: http://locutus.io/php/strncasecmp/ + // original by: Saulo Vallory + // input by: Nate + // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman) + // note 1: Returns < 0 if str1 is less than str2 ; > 0 + // note 1: if str1 is greater than str2, and 0 if they are equal. + // example 1: strncasecmp('Price 12.9', 'Price 12.15', 2) + // returns 1: 0 + // example 2: strncasecmp('Price 12.09', 'Price 12.15', 10) + // returns 2: -1 + // example 3: strncasecmp('Price 12.90', 'Price 12.15', 30) + // returns 3: 8 + // example 4: strncasecmp('Version 12.9', 'Version 12.15', 20) + // returns 4: 8 + // example 5: strncasecmp('Version 12.15', 'Version 12.9', 20) + // returns 5: -8 + + var diff; + var i = 0; + var str1 = (argStr1 + '').toLowerCase().substr(0, len); + var str2 = (argStr2 + '').toLowerCase().substr(0, len); + + if (str1.length !== str2.length) { + if (str1.length < str2.length) { + len = str1.length; + if (str2.substr(0, str1.length) === str1) { + // return the difference of chars + return str1.length - str2.length; + } + } else { + len = str2.length; + // str1 is longer than str2 + if (str1.substr(0, str2.length) === str2) { + // return the difference of chars + return str1.length - str2.length; + } + } + } else { + // Avoids trying to get a char that does not exist + len = str1.length; + } + + for (diff = 0, i = 0; i < len; i++) { + diff = str1.charCodeAt(i) - str2.charCodeAt(i); + if (diff !== 0) { + return diff; + } + } + + return 0; +}; +//# sourceMappingURL=strncasecmp.js.map
\ No newline at end of file |