【软件版本比较】
js中我们经常来对比一些数据的大小,处理数据,等等,前面我也说了很多比较之类的,有心的童鞋也可以去前面看看,一些数据处理,以及一些js操作数据的方法等等。
例子一:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function versionCompare(Str1,Str2){
//第一步:使用正则,先把传参进来的两个版本号中空格给替换成空。
var nStr1 =Str1.replace(/(^\s+)|(\s+$)/gi,"");
var nStr2 = Str2.replace(/(^\s+)|(\s+$)/gi,"");
//第二步:进行一次判断,万一我们传进来的是空的,提示一下,
if(!nStr1 || !nStr2){
alert("您输入的两个版本号为空");
return true;
}
//第三步:使用正则来匹配截取两个传进来的版本号中的版本数字
var req=/\d(\.|\d)*\d/gi; //这个是匹配**.**.**数字的正则
nStr1=nStr1.match(req)[0]; //match出来的是一个数组,这个匹配出来在第0个
nStr2=nStr2.match(req)[0];
//第四步:版本比较,先把版本号字符串切割成数组,[主版本号,次版本号,修订号]
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){
//第一步:使用正则,先把传参进来的两个版本号中空格给替换成空。
var nStr1 =Str1.replace(/(^\s+)|(\s+$)/gi,"");
var nStr2 = Str2.replace(/(^\s+)|(\s+$)/gi,"");
//第二步:进行一次判断,万一我们传进来的是空的,提示一下,
if(!nStr1 || !nStr2){
alert("您输入的两个版本号为空");
return true;
}
//第三步:使用正则来匹配截取两个传进来的版本号中的版本数字
var req=/\d(\.|\d)*\d/gi; //这个是匹配**.**.**数字的正则
nStr1=nStr1.match(req)[0]; //match出来的是一个数组,这个匹配出来在第0个
nStr2=nStr2.match(req)[0];
//第四步:版本比较,先把版本号字符串切割成数组,[主版本号,次版本号,修订号]
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){
//循环数组的每一项,相减的差额来做判断
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>
以上,结束!