通用判断版本号是否在两者之间,也可以搭配判断是否大于某版本号,小于取反即可
PS:需确保版本规范一致,比如都是.号分割的n位版本号
gtStart = APP.gtTargetVersion( APP.compareVersionEle(curr,start) );
if(!gtStart){
return false;
}
return !APP.gtTargetVersion( APP.compareVersionEle(curr,end) );
};
APP.compareVersionEle = function(curr,target){
var len = curr.length;
var temp = [];
var left,right;
for(var i=;i<len;i++){
left = +curr[i];
right = +target[i];
if(left == right){
temp.push();
}else if(left > right){
temp.push();
}else{
temp.push(-);
}
}
return temp;
};
APP.gtTargetVersion = function(arr){
var res = true;
var curr,next;
for(var i=,len=arr.length;i<len;i++){
curr = arr[i];
next = arr[i+];
if( curr>next ){
if(curr == ){
res = false;
break;
}
if(curr == ){
res = true;
break;
}
}else if(curr == next){
if(curr == -){
res = false;
break;
}
if(curr == ){
res = true;
break;
}
}else{
if(curr == -){
res = false;
break;
}
if(curr == ){
res = true;
break;
}
}
}
// console.log(res);
return res;
}
var res = APP.betweenVersion('...','...','.');
console.log(res);
当前项目有需要判断指定版本是否在两个版本之间这个需求,百度谷歌找了一圈,代码都是有局限性的,无法通用,甚至是一堆错误的东西转来转去......
当前方法有两个要点,一个是需要将切开的版本号转为数值型数组,还有一个是对比大小的时候转为 -1 0 1 三个数值的对比,这样,无论隔开的版本号有多大,总体分为几段,都可以正确比对.
下面给大家分享javascript 检测浏览器类型和版本的代码
对象/特征检测法
该方法是一种判断浏览器能力(而非浏览器的确切型号)的通用方法。大部分JS专家认为这个方法最合适,因为他们认为按照该方法所编写的脚本是经得起未来考验的。
如果更关注浏览器的能力而不在乎它实际的身份,就可以使用这种方法。
user-agent字符串检测法
user-agent字符串提供了关于Web浏览器的大量信息,包括浏览器的名称和版本。
通常我们做得最多的,就是判断是否是IE了,其它几种浏览器一般都会符合标准.有些客户只需要符合IE和FF就已经满足了.那么我们可以这样做:
判断IE远远不止上面一种方法,可以使用IE更多特有的东西,如:window.ActiveXObject,document.all等,这些都属于对象/特征检测法了!通常要在不同的浏览器上写不同的样式(因为IE样式解析也各有不同),那就得判断版本了.可以这样做
检测操作系统: