2012-07-20 30 views
0

我想对包含名称和数字的字符串数组进行排序。但我想,以提高字母排序才能得到像正则表达式:在任意数字前插入数字

John 8 test 
John 9 test 
John 10 test 

,而不必在顶部,因为“1” <“8” <“9”“约翰福音10测试”的订单。我的想法是要插入的数bevore任何数目的位数,以便在内部数组进行排序变为:

John 18 test 
John 19 test 
John 210 test 

现在是字母数字正确排序阵列。

任何想法如何以简单的方式插入位数的数字? RegExp将是完美的。我在nodejs/JavaScript中做了所有这些。

在此先感谢!

heinob

+1

如果它拥有超过9个位数或前导零?我认为你真正需要的是[自然排序](http://stackoverflow.com/q/2802341/7586)。 – Kobi 2012-07-20 06:48:43

+0

这实际上可能是一个问题,但在我的情况下不会发生,因为这些数字是物理测量值,它们没有前导零,并且不会超过9位数。 – heinob 2012-07-20 07:15:16

回答

1

我发现(之一)回答自己:

var a = "John 352 Name 1 test 23 better"; 
a.replace(/\d+/g, function(match, number) { 
    return match.length + match; 
}); 

做什么,我想:-)

+1

+1很高兴你把它修好了。 – alex 2012-07-20 07:08:31

+0

感谢您的承诺。你一定会得到最快的答案价格。 – heinob 2012-07-20 07:11:44

相关问题