排序字母数字字符串Descending

sis*_*nts 6 javascript regex arrays sorting

我需要按如下方式对一组字母数字项进行排序.从:

2 xxx
20 axxx
38 xxxx
20 bx
8540 xxxxxx
Run Code Online (Sandbox Code Playgroud)

至:

8540 xxxxx
38 xxxx
20 axxx
20 bx
2 xxx
Run Code Online (Sandbox Code Playgroud)

因此,相对于数字按降序排序,然后按字母顺序升序.数字始终与字母字符(表示为"xxxx")之间由单个空格分隔,但数字是可变长度.

我怀疑我需要在sort()函数中使用一些正则表达式并按空格分割数字然后对其进行排序,但我不知道如何将字母顺序排序.任何代码示例?非常感谢!

Pas*_*rby 6

不需要RegEx,因为Array.sort()接受自定义功能:

http://jsfiddle.net/EFGK9/

var arr=["2 xxx","20 axxx","38 xxxx","20 bx","8540 xxxxxx"];
arr.sort(function(a,b){
    a=a.split(" ");
    b=b.split(" ");
    var an=parseInt(a[0],10);
    var bn=parseInt(b[0],10);
    return an<bn?1:(an>bn?-1:(a[1]<b[1]?-1:(a[1]>b[1]?1:0)));
});
console.log(arr);
Run Code Online (Sandbox Code Playgroud)