You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
410 B
23 lines
410 B
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, |
|
}
|
|
|