1 module.exports = function naturalCmp(str1, str2) {
2 if (str1 == str2) return 0;
6 var cmpRegex = /(\.\d+|\d+|\D+)/g,
7 tokens1 = String(str1).match(cmpRegex),
8 tokens2 = String(str2).match(cmpRegex),
9 count = Math.min(tokens1.length, tokens2.length);
11 for (var i = 0; i < count; i++) {
18 if (num1 === num1 && num2 === num2) {
19 return num1 > num2 ? 1 : -1;
21 return a < b ? -1 : 1;
25 if (tokens1.length != tokens2.length)
26 return tokens1.length - tokens2.length;
28 return str1 < str2 ? -1 : 1;