当判断两个版本号的时候,不能单纯的去点然后相互比较,版本比较可能比较特殊,但是分析起来又挺简单的,既然不能直接去点比较,
那就拆分成数组,一组一组对应的去比,为了能正常的进行比较 如果上一个版本长度小于当前版本设置的长度,则给上一个版本的数组追加一个值为0的字符串
js:
$("#curVersion").on("blur",versionFn);
function versionFn(){
var curV = $("#curVersion").val(),
reqV = $("#reqVersion").val(),
curArr=curV.split('.'),
reqArr=reqV.split('.'),
maxL= Math.max(curArr.length,reqArr.length),
index=0,
diff=0; //当前比较是否相等
if(reqArr.length!=maxL){//为了能正常的进行比较 如果上一个版本长度小于当前版本设置的长度,则给上一个版本的数组追加一个值为0的字符串
reqArr.push("0");
}
//console.log(curArr,reqArr);
while(index<maxL){
diff = parseInt(curArr[index])>parseInt(reqArr[index])?1:(parseInt(curArr[index])==parseInt(reqArr[index])?0:-1);
if(diff!=0){
break;
}
index++;
}
if (diff>0) {
console.log('新')
}else if (diff==0) {
console.log('稳定')
}else{
console.log('旧')
}
}
html:
旧、<input id="reqVersion" type="text" /><br />
新、<input id="curVersion" type="text" />
效果图如下:
博文乃自己在实际实验中所遇到,并记录下来。如有不妥,请谅解。如果还有更好的解决办法,欢迎来一起探讨。qq邮箱:1198217495@qq.com