Hallo BigTomcio,
Diese Version Sortiert es Korrekt, allerdings komischerweise nur jedes zweite mal. Der String ist hier testweise immer der gleiche, also kann ich mir nicht erklären warum dieses phänomen auftitt.
und was bei dir passiert die anderen Male?
Bei mir ist die Sache äußerst diffus: Im IE geht es nach etwa vier malen nicht. Es kommen verschiedene Javascriptfehler, z.B "Number expected" in der Zeile mit dem Aufruf oder "undefined is null or not an object" in der Zeile mit if(a.match..., im FF läuft es einwandfrei.
Gruß, Jürgen
PS hier mein geänderter Test. Die alerts zeigten, was zu erwarten war.
var str = new Array("12@2424523","3@423234","12a@2366","32a@2363","124@64576");
function hnrSort(a,b) {
//alert("1 "+a+" "+str);
a = a.substring(0,a.indexOf("@"));
b = b.substring(0,b.indexOf("@"));
//alert("2 "+a+" "+str);
if(a.match(/[a-zA-Z]/g) != null){
a = a.substring(0,a.length-1);
}
if(b.match(/[a-zA-Z]/g) != null){
b = b.substring(0,b.length-1);
}
//alert("3 "+a+" "+str);
return(a-b);
}
<button type="button" onclick="alert(str+'\n'+str.sort(hnrSort)+'\n'+str)">Klick</button>
<button type="button" onclick="alert(str.sort(hnrSort))">Klick</button>