Показать сообщение отдельно
  #2 (permalink)  
Старый 16.01.2014, 11:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

bolatik,

var arr = ["World of tans", "Империя добра", "4 Life", 1, 7, 81, 9];
 alert(arr.sort(
 function (a, b)
 {  a = ''+a; b=''+b;
    var len = Math.min(a.length,b.length), vol = {num : [3,/\d/], rus : [2,/[а-яё]/i], eng: [1,/[a-z]/i]},res = 0;

    for (var i=0; i<len; i++)  { var aa = 0, bb = 0;
      for(var k in vol) if (vol[k][1].test(a[i])) aa = vol[k][0];
      for(var k in vol) if (vol[k][1].test(b[i])) bb = vol[k][0];
      res = bb - aa;
      if (res) return res;
      if (b[i] > a[i]) return 1;
      if (b[i] < a[i]) return -1;
    }
    return a.length - b.length; }
 ));

Последний раз редактировалось рони, 16.01.2014 в 14:50.
Ответить с цитированием