通用javascript代碼判斷版本號(hào)是否在版本范圍之間
通用判斷版本號(hào)是否在兩者之間,也可以搭配判斷是否大于某版本號(hào),小于取反即可
PS:需確保版本規(guī)范一致,比如都是.號(hào)分割的n位版本號(hào)
var APP = {};
//判斷指定版本是否在版本范圍之間,需確保版本規(guī)范一致;比如 (..,..,..)
APP.betweenVersion = function(curr,start,end,separator){
if(curr == start || curr == end){
return true;
}
var separator = separator || '.';
var curr = curr.split(separator);
var start = start.split(separator);
var end = end.split(separator);
var gtStart = false;
var ltEnd = false;
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);
當(dāng)前項(xiàng)目有需要判斷指定版本是否在兩個(gè)版本之間這個(gè)需求,百度谷歌找了一圈,代碼都是有局限性的,無(wú)法通用,甚至是一堆錯(cuò)誤的東西轉(zhuǎn)來(lái)轉(zhuǎn)去......
當(dāng)前方法有兩個(gè)要點(diǎn),一個(gè)是需要將切開(kāi)的版本號(hào)轉(zhuǎn)為數(shù)值型數(shù)組,還有一個(gè)是對(duì)比大小的時(shí)候轉(zhuǎn)為 -1 0 1 三個(gè)數(shù)值的對(duì)比,這樣,無(wú)論隔開(kāi)的版本號(hào)有多大,總體分為幾段,都可以正確比對(duì).
下面給大家分享javascript 檢測(cè)瀏覽器類(lèi)型和版本的代碼
對(duì)象/特征檢測(cè)法
該方法是一種判斷瀏覽器能力(而非瀏覽器的確切型號(hào))的通用方法。大部分JS專(zhuān)家認(rèn)為這個(gè)方法最合適,因?yàn)樗麄冋J(rèn)為按照該方法所編寫(xiě)的腳本是經(jīng)得起未來(lái)考驗(yàn)的。
//獲取IE瀏覽器的版本號(hào)
//返回?cái)?shù)值,顯示IE的主版本號(hào)
function getIEVer() {
var ua = navigator.userAgent; //獲取用戶端信息
var b = ua.indexOf("MSIE "); //檢測(cè)特殊字符串"MSIE "的位置
if (b < 0) {
return 0;
}
return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號(hào)字符串,并轉(zhuǎn)換為數(shù)值
}
alert(getIEVer()); //返回?cái)?shù)值8(我的IE8)
如果更關(guān)注瀏覽器的能力而不在乎它實(shí)際的身份,就可以使用這種方法。
user-agent字符串檢測(cè)法
user-agent字符串提供了關(guān)于Web瀏覽器的大量信息,包括瀏覽器的名稱(chēng)和版本。
var ua = navigator.userAgent.toLowerCase(); //獲取用戶端信息
var info = {
ie: /msie/.test(ua) && !/opera/.test(ua), //匹配IE瀏覽器
op: /opera/.test(ua), //匹配Opera瀏覽器
sa: /version.*safari/.test(ua), //匹配Safari瀏覽器
ch: /chrome/.test(ua), //匹配Chrome瀏覽器
ff: /gecko/.test(ua) && !/webkit/.test(ua) //匹配Firefox瀏覽器
};
(info.ie) && alert("IE瀏覽器");
(info.op) && alert("Opera瀏覽器");
(info.sa) && alert("Safari瀏覽器");
(info.ff) && alert("Firefox瀏覽器");
(info.ch) && alert("Chrome瀏覽器");
通常我們做得最多的,就是判斷是否是IE了,其它幾種瀏覽器一般都會(huì)符合標(biāo)準(zhǔn).有些客戶只需要符合IE和FF就已經(jīng)滿足了.那么我們可以這樣做:
var isIE = (navigator.appName == "Microsoft Internet Explorer");
判斷IE遠(yuǎn)遠(yuǎn)不止上面一種方法,可以使用IE更多特有的東西,如:window.ActiveXObject,document.all等,這些都屬于對(duì)象/特征檢測(cè)法了!通常要在不同的瀏覽器上寫(xiě)不同的樣式(因?yàn)镮E樣式解析也各有不同),那就得判斷版本了.可以這樣做
//獲取IE瀏覽器的版本號(hào)
//返回?cái)?shù)值,顯示IE的主版本號(hào)
function getIEVer() {
var ua = navigator.userAgent; //獲取用戶端信息
var b = ua.indexOf("MSIE "); //檢測(cè)特殊字符串"MSIE "的位置
if (b < 0) {
return 0;
}
return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號(hào)字符串,并轉(zhuǎn)換為數(shù)值
}
alert(getIEVer()); //返回?cái)?shù)值7
檢測(cè)操作系統(tǒng):
var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系統(tǒng),則返回true
var isMac = (navigator.userAgent.indexOf("Mac") != -1); //如果是Macintosh系統(tǒng),則返回true
var isUnix = (navigator.userAgent.indexOf("X11") != -1); //如果是Unix系統(tǒng),則返回true
var isLinux = (navigator.userAgent.indexOf("Linux") != -1); //如果是Linux系統(tǒng),則返回true
- js獲取微信版本號(hào)的方法
- js判斷ie版本號(hào)的簡(jiǎn)單實(shí)現(xiàn)代碼
- 用javascript判斷IE版本號(hào)簡(jiǎn)單實(shí)用且向后兼容
- js 瀏覽器版本及版本號(hào)判斷函數(shù)2009年
- javascript獲取flash版本號(hào)的方法
- javascript 瀏覽器類(lèi)型和版本號(hào)檢測(cè)代碼(兼容多瀏覽器)
- 如何使用php腳本給html中引用的js和css路徑打上版本號(hào)
- js判斷游覽器類(lèi)型及版本號(hào)的代碼
- js判斷主流瀏覽器類(lèi)型和版本號(hào)的簡(jiǎn)單實(shí)現(xiàn)代碼
- javascript比較語(yǔ)義化版本號(hào)的實(shí)現(xiàn)代碼
相關(guān)文章
web頁(yè)面和微信小程序頁(yè)面實(shí)現(xiàn)瀑布流效果
這篇文章主要介紹了web頁(yè)面和微信小程序頁(yè)面實(shí)現(xiàn)瀑布流效果,本文通過(guò)實(shí)例代碼圖文介紹,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-09-09
JavaScript使用Math.Min返回兩個(gè)數(shù)中較小數(shù)的方法
這篇文章主要介紹了JavaScript使用Math.Min返回兩個(gè)數(shù)中較小數(shù)的方法,涉及javascript中Math.Min方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
在ts文件中引入js模塊編寫(xiě)聲明文件的寫(xiě)法示例
這篇文章主要給大家介紹了關(guān)于在ts文件中引入js模塊編寫(xiě)聲明文件的寫(xiě)法示例,TypeScript是JavaScript的超集,TypeScript會(huì)進(jìn)類(lèi)型檢查,需要的朋友可以參考下2023-08-08
TypeScript在Vuex4中使用TS實(shí)戰(zhàn)分享
這篇文章主要介紹了TypeScript在Vuex4中使用TS實(shí)戰(zhàn)分享,vuex4類(lèi)型?Api分析和vuex4實(shí)戰(zhàn)兩部分講述,需要的小伙伴可以參考一下2022-06-06
基于JavaScript實(shí)現(xiàn)HarmonyOS備忘錄服務(wù)卡片
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)HarmonyOS備忘錄服務(wù)卡片,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
javascript鼠標(biāo)滑動(dòng)評(píng)分控件完整實(shí)例
這篇文章主要介紹了javascript鼠標(biāo)滑動(dòng)評(píng)分控件實(shí)現(xiàn)方法,以完整實(shí)例形式詳細(xì)分析了javascript操作鼠標(biāo)事件及頁(yè)面元素樣式實(shí)現(xiàn)評(píng)分效果的方法,需要的朋友可以參考下2015-05-05
javascript 控制 html元素 顯示/隱藏實(shí)現(xiàn)代碼
javascript 控制 html元素 顯示/隱藏,下面是一些逐步的實(shí)現(xiàn)原理。2009-09-09

