2012-07-20 34 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

相關問題