如何比较版本号大小类似9 11 1和9 2 9

2017-01-12 03:48:46javascript问题

很多软件有很多小的版本号,由于我有一个版本大小比较的需求。
却碰到了小版本的比较问题:

9_11_1和9_2_9

10.11.111和10.2.2

有那个大神可以给点建议啊

网友回答:

//分段比较
function version( v1, v2 ) {
  var arr1 = v1.replace(/[-_]/g,'.').split('.');
  var arr2 = v2.replace(/[-_]/g,'.').split('.');
  console.log(arr1,arr2);
  var len = Math.max(arr1.length, arr2.length);
  for ( var i = 0; i < len; i++ ) {
      if(parseInt(arr1[i]) == parseInt(arr2[i])) continue;
      return parseInt(arr1[i]) > parseInt(arr2[i]) ? true :false;
  }
  return false;
}
version('9_11_1','9_2_9');//true
version('10.11.111','10.2.2');//true
  • kstd123 kstd123 2017-1-12 4:43 回复:苏生不惑

    两个结果按理来说是false。。

  • jsoncode jsoncode 2017-1-13 11:06 回复:苏生不惑
    楼上的为啥说是false