var citys = ['北京-b','上海-s','广州-g','深圳-s','南京-n','苏州-s','杭州-h','济南-j','青岛-q','武汉-w','沈阳-sh','成都-ch','天津-t','重庆-ch','西安-x','郑州-zh','石家庄-sh','长沙-ch','长春-ch','合肥-h','福州-f'];
function sortRule(a,b) {
return a.localeCompare(b);
          
}
        window.onload = function(){
              alert(citys.sort(sortRule));
         }
//结果:北京-b,成都-ch,福州-f,广州-g,杭州-h,合肥-h,济南-j,南京-n,青岛-q,上海-s,深圳-s,沈阳-sh,石家庄-sh,苏州-s,天津-t,武汉-w,西安-x,长春-ch,长沙-ch,郑州-zh,重庆-ch我希望能按照拼音的首字母【a~z】来排序...

解决方案 »

  1.   

    function sortRule(a, b) {
      return a.replace(/.*\-(.+)$/, '$1') > b.replace(/.*\-(.+)$/, '$1')
    }
      

  2.   

    用substring取最后一位取出那个字母后 return 字母相减试试
      

  3.   


    var citys = ['北京-b','上海-s','广州-g','深圳-s','南京-n','苏州-s','杭州-h','济南-j','青岛-q','武汉-w','沈阳-sh','成都-ch','天津-t','重庆-ch','西安-x','郑州-zh','石家庄-sh','长沙-ch','长春-ch','合肥-h','福州-f'];
        function sortRule(a,b) {
            return a.replace(/.*\-(.+)$/, '$1') > b.replace(/.*\-(.+)$/, '$1');        
        }
            window.onload = function(){
                  alert(citys.sort(sortRule));
             }在safari浏览器上得不到正确的排序
    firefox可以