javascript自然排序

Raz*_*van 2 javascript arrays sorting natural-sort

我有这个数组:

var columnArray =
['columnNumber1','columnNumber6','coulmnNumber7','columnNumber11','columnNumber12'];
Run Code Online (Sandbox Code Playgroud)

如果我这样做columnArray.sort();,它会给我:

columnArray:
['columnNumber1','columnNumber11','coulmnNumber12','columnNumber6','columnNumber7']
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确排序?

elc*_*nrs 17

试试这样:

arr = arr.sort(function(a, b) {
  return +/\d+/.exec(a)[0] - +/\d+/.exec(b)[0];
});
Run Code Online (Sandbox Code Playgroud)

编辑:修复它现在有效,它有几个错误:http://jsbin.com/iwejik/1/edit

  • 我相信当你在a或b中没有任何数字时它会崩溃 (4认同)