Результат сортировки:
all111456, art221827, fol232926, ind30040, mus141111, mus14114, sml161617, str34222, vid34343 А должно получиться: all111456, art221827, fol232926, ind30040, mus14114, mus141111, sml161617, str34222, vid34343 |
javaphp,
<p> А должно получиться:</p> <p>all111456, art221827, fol232926, ind30040, mus14114, mus141111, sml161617, str34222, vid34343</p> <script> var arr = [ "art221827", "mus141111", "mus14114", "vid34343", "fol232926", "str34222", "sml161617", "all111456", "ind30040"]; function fn(a,b) { var aa = a.replace(/\d+/g,""), bb = b.replace(/\d+/g,""); a = a.replace(/\D+/g,""); b = b.replace(/\D+/g,""); return (aa > bb ) - (bb > aa) || a - b } arr.sort(fn); document.write(JSON.stringify(arr)) </script> |
Уже разобрался. Рассмотрел 3 случая когда строковые части A и B: 1) < 2) > 3) == .
Если вариант 3) когда == , то сравнивал числовые части A и B. И все получилось. Спасибо за подсказку с регулярными выражениями. |
Часовой пояс GMT +3, время: 00:51. |