【軟件版本比較】
js中我們經(jīng)常來對比一些數(shù)據(jù)的大小,處理數(shù)據(jù),等等,前面我也說了很多比較之類的,有心的童鞋也可以去前面看看,一些數(shù)據(jù)處理,以及一些js操作數(shù)據(jù)的方法等等。
例子一:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function versionCompare(Str1,Str2){
//第一步:使用正則,先把傳參進(jìn)來的兩個版本號中空格給替換成空。
var nStr1 =Str1.replace(/(^\s+)|(\s+$)/gi,"");
var nStr2 = Str2.replace(/(^\s+)|(\s+$)/gi,"");
//第二步:進(jìn)行一次判斷,萬一我們傳進(jìn)來的是空的,提示一下,
if(!nStr1 || !nStr2){
alert("您輸入的兩個版本號為空");
return true;
}
//第三步:使用正則來匹配截取兩個傳進(jìn)來的版本號中的版本數(shù)字
var req=/\d(\.|\d)*\d/gi; //這個是匹配**.**.**數(shù)字的正則
nStr1=nStr1.match(req)[0]; //match出來的是一個數(shù)組,這個匹配出來在第0個
nStr2=nStr2.match(req)[0];
//第四步:版本比較,先把版本號字符串切割成數(shù)組,[主版本號,次版本號,修訂號]
var arr1 = nStr1.split('.'); //[**,**,**]
var arr2 = nStr2.split('.');
//第五步:分別開始分情況比較版本號中的三個版本。
if(arr1[0]>arr2[0]){
alert("第一個版本高于第二個版本");
return true;
}else if(arr1[0] == arr2[0]){
if(arr1[1]>arr2[1]){
alert("第一個版本高于第二個版本")
return true;
}else if(arr1[1] == arr2[1]){
if(arr1[2]>arr2[2]){
alert("第一個版本高于第二個版本")
return true;
}else if(arr1[2] == arr2[2]){
alert("兩個版本號一樣");
return false;
}
}
}
alert("第一個版本低于第二個版本")
return false;
}
console.log(versionCompare("l1.11.0","p1.11.0"));
</script>
</head>
<body>
</body>
</html>
例子二:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>/title>
<script>
function versionCompare(Str1,Str2){
//第一步:使用正則,先把傳參進(jìn)來的兩個版本號中空格給替換成空。
var nStr1 =Str1.replace(/(^\s+)|(\s+$)/gi,"");
var nStr2 = Str2.replace(/(^\s+)|(\s+$)/gi,"");
//第二步:進(jìn)行一次判斷,萬一我們傳進(jìn)來的是空的,提示一下,
if(!nStr1 || !nStr2){
alert("您輸入的兩個版本號為空");
return true;
}
//第三步:使用正則來匹配截取兩個傳進(jìn)來的版本號中的版本數(shù)字
var req=/\d(\.|\d)*\d/gi; //這個是匹配**.**.**數(shù)字的正則
nStr1=nStr1.match(req)[0]; //match出來的是一個數(shù)組,這個匹配出來在第0個
nStr2=nStr2.match(req)[0];
//第四步:版本比較,先把版本號字符串切割成數(shù)組,[主版本號,次版本號,修訂號]
var arr1 = nStr1.split('.'); //[**,**,**]
var arr2 = nStr2.split('.');
//第五步:開始比較
var minL=Math.min(arr1.length,arr2.length);
var index=0;
var diff=0;
while(index<minL){
//循環(huán)數(shù)組的每一項,相減的差額來做判斷
diff=parseInt(arr1[index])-parseInt(arr2[index]);
if(diff!=0){
break;
}
index++;
}
diff=(diff!=0)?diff:(arr1.length-arr2.length);
//通過diff的值與0比較,生成true(第一個大于第二個) 或者是false(不大于)
return diff>0;
}
alert(versionCompare("l1.11.1","p1.11.0"));
</script>
</head>
<body>
</body>
</html>
以上,結(jié)束!