[Java教程]javascript通用判断版本号是否在版本范围之间代码
0 2015-11-28 17:00:09
通用判断版本号是否在两者之间,也可以搭配判断是否大于某版本号,小于取反即可1 var APP = {}; 2 3 //判断指定版本是否在版本范围之间 1.0.2 3.1.6 4 APP.betweenVersion = function(curr,start,end,separator){ 5 if(curr == start || curr == end){ 6 return true; 7 } 8 9 var separator = separator || '.';10 var curr = curr.split(separator);11 var start = start.split(separator);12 var end = end.split(separator); 13 var gtStart = false;14 var ltEnd = false;15 16 gtStart = APP.gtTargetVersion( APP.compareVersionEle(curr,start) );17 18 if(!gtStart){19 return false;20 }21 22 return !APP.gtTargetVersion( APP.compareVersionEle(curr,end) );23 24 };25 APP.compareVersionEle = function(curr,target){26 var len = curr.length;27 var temp = [];28 var left,right;29 30 for(var i=0;i right){38 temp.push(1);39 }else{40 temp.push(-1);41 }42 }43 return temp;44 };45 46 APP.gtTargetVersion = function(arr){47 var res = true;48 var curr,next;49 50 for(var i=0,len=arr.length;inext ){55 if(curr == 0){56 res = false;57 break;58 }59 if(curr == 1){60 res = true;61 break;62 } 63 64 }else if(curr == next){65 if(curr == -1){66 res = false;67 break;68 }69 if(curr == 1){70 res = true;71 break;72 }73 }else{74 if(curr == -1){75 res = false;76 break;77 }78 if(curr == 0){79 res = true;80 break;81 }82 }83 }84 // console.log(res);85 return res;86 }87 88 var res = APP.betweenVersion('1.2.100.10','1.3.10.2','3.1.1.16','.');89 console.log(res);
当前项目有需要判断指定版本是否在两个版本之间这个需求,百度谷歌找了一圈,代码都是有局限性的,无法通用,甚至是一堆错误的东西转来转去......
当前方法有两个要点,一个是需要将切开的版本号转为数值型数组,还有一个是对比大小的时候转为 -1 0 1 三个数值的对比,这样,无论隔开的版本号有多大,总体分为几段,都可以正确比对.
本文网址:http://www.shaoqun.com/a/162496.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
JavaScript
0