要求数组中字母排在汉字前面。同时全汉字排在最后面
// 判断字符串是否全是中文 function isAllChinese(str) { return /^[u4E00-u9FA5]+$/.test(str) } // 判断字符是否为中文 function isChinese(char) { return /^[u4E00-u9FA5]$/.test(char) } var arr=["Jordan","科比a","James","奥尼尔"]; arr.sort(function(a,b){ return (a+'').localeCompare(b+'');}); //先排序 var newArr=arr.sort(function(a,b){ //字母在汉字前面 if(!isChinese(a.substr(0,1)) && isChinese(b.substr(0,1))){ return -1 } // 全汉字的排在非全汉字的后面 if (isAllChinese(a) && !isAllChinese(b)) { return 1 } if (!isAllChinese(a) && isAllChinese(b)) { return -1 } }); alert(newArr);
结果输出