我試圖排序使用字母和數字AS3 - 排序ArrayCollection的字母數字值
目前我得到的ArrayCollection「B12,C1,B1,B3,B4,B5,B6,B7,B8 ,b9,b10,b11,b0,b13,b14,b15「但是希望」b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15, c1「
請任何人都可以建議when're我出錯了?
var dataSortField:SortField = new SortField();
dataSortField.name = "order";
dataSortField.numeric = false;
dataSortField.compareFunction = sortAlphaNumeric;
var numericDataSort:Sort = new Sort();
numericDataSort.fields = [dataSortField];
pageArrCol.sort = numericDataSort;
private function sortAlphaNumeric(a:String, b:String):int {
var reA:RegExp = /[^a-zA-Z]/g;
var reN:RegExp = /[^0-9]/g;
var aA:String = a.replace(reA,"");
var bA:String = b.replace(reA,"");
if (aA === bA) {
var aN:int = parseInt(a.replace(reN,""),10);
var bN:int = parseInt(b.replace(reN,""),10);
return aN === bN ? 0 : aN > bN ? 1 : -1;
} else {
return aA > bA ? 1 : -1;
}
}
什麼是你所期望的結果?你看到的結果是什麼?零到底是一個問題? – JeffryHouser
嗨,我剛剛編輯了這個問題 –
你在做什麼? sortAlphaNumeric函數背後的想法是什麼?你能假設一個恆定的/一致的字母結構'letter'+'number'嗎? – JeffryHouser