比较版本v2.2.3和2.1.15大小
//假定字符串的每节数都在5位以下
function toNum(a){
var a=a.toString();
//也可以这样写 var c=a.split(/\./);
var c=a.split('.');
var num_place=["","0","00","000","0000"],r=num_place.reverse();
for (var i=0;i<c.length;i++){
var len=c[i].length;
c[i]=r[len]+c[i];
}
var res= c.join('');
return res;
}
function cpr_version(a,b){
var _a=toNum(a),_b=toNum(b);
if(_a==_b) console.log("版本号相同!版本号为:"+a);
if(_a>_b) console.log("版本号"+a+"是新版本!");
if(_a<_b) console.log("版本号"+b+"是新版本!");
}
var a="2.2.3";b="2.1.15";
cpr_version(a,b);
结果
如果版本号是这样的包括v字母的 var a="v2.10.10";b="v2.12.1";
我们使用正则表达式做一下处理 稍微改动一下
将上面的var c=a.split('.');替换成var c=a.split(/\D/);即可
参考资料
http://www.shaoqun.com/a/235615.aspx