Я использую этот код, благодаря этому посту :
var reA = /[^a-zA-Z]/g;
var reN = /[^0-9]/g;
function sortAlphaNum(a, b) {
var aA = a.replace(reA, "");
var bA = b.replace(reA, "");
if (aA === bA) {
var aN = parseInt(a.replace(reN, ""), 10);
var bN = parseInt(b.replace(reN, ""), 10);
return aN === bN ? 0 : aN > bN ? 1 : -1;
} else {
return aA > bA ? 1 : -1;
}
}
Но то, что я пытаюсь отсортировать, немного сложнее:
У меня есть:
A1
A3
A5
A14
A6-1
A6-2
Я ожидаю:
A1
A3
A5
A6-1
A6-2
A14