0

名前と数字を含む文字列の配列を並べ替えたい。しかし、次のような順序になるように英数字の並べ替え順序を改善したい

John 8 test
John 9 test
John 10 test

「1」<「8」<「9」であるため、上部に「ジョン10テスト」を配置する代わりに。私の考えは、任意の数字の前に数字の桁数を挿入することです。したがって、内部的にソートされる配列は次のようになります。

John 18 test
John 19 test
John 210 test

これは正しくソートされた英数字の配列です。

簡単な方法で数字の前に桁数を挿入する方法はありますか? 正規表現は完璧です。これはすべて nodejs/JavaScript で行っています。

前もって感謝します!

ヘイノブ

4

1 に答える 1

1

私は(1つの)答えを自分で見つけました:

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

私が望むことをします:-)

于 2012-07-20T07:07:56.917 に答える