<script>
function tagsSort(arr, empty) {
if (!String.prototype.localeCompare){
console.log("您的浏览器不支持tagsSort,请更新浏览器!");
return false;
}
var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ*".split('');
var zh = "阿八嚓哒妸发旮哈讥讥咔垃痳拏噢妑七呥扨它穵穵穵夕丫帀".split('');
var segs = [];
var curr;
for(var i=0;i<letters.length;i++){
var item = letters[i];
curr = {letter: item, list: []};
for(var j=0;j<arr.length;j++){
var _item = arr[j];
if(!zh[i]){
//*
if(_item.localeCompare(zh[0], "zh") <= 0){
curr.list.push(_item);
}
}else {
var firstStr = _item.split("");
firstStr = firstStr[0];
if (firstStr.charCodeAt(0) >= 65 && firstStr.charCodeAt(0) <= 90 || firstStr.charCodeAt(0) >= 97 && firstStr.charCodeAt(0) <= 122) {
//a-z A-Z
if (firstStr.toUpperCase() === item) curr.list.push(_item);
} else {
if(!zh[i+1]){
//字 Z
if(zh[i].localeCompare(_item, "zh") <= 0) {
curr.list.push(_item);
}
}else {
//字 A-Y
if(zh[i].localeCompare(_item, "zh") <= 0 && _item.localeCompare(zh[i+1], "zh") === -1) {
curr.list.push(_item);
}
}
}
}
}
if (empty || curr.list.length) {
segs.push(curr);
curr.list.sort(function (a, b) {
return a.localeCompare(b, "en");
});
}
}
return segs;
}
console.log(tagsSort(["A","在要","sdfsde","Sa","sa","213123","3sfwefsd","Qdsfsfwdsf"]))
console.log(tagsSort(["A","在要","sdfsde","Sa","sa","213123","3sfwefsd","Qdsfsfwdsf"],true))
</script>
![]()
![]()