const numeric = /^[0-9]+$/ | |
const compareIdentifiers = (a, b) => { | |
const anum = numeric.test(a) | |
const bnum = numeric.test(b) | |
if (anum && bnum) { | |
a = +a | |
b = +b | |
} | |
return a === b ? 0 | |
: (anum && !bnum) ? -1 | |
: (bnum && !anum) ? 1 | |
: a < b ? -1 | |
: 1 | |
} | |
const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) | |
module.exports = { | |
compareIdentifiers, | |
rcompareIdentifiers | |
} |