通用javascript代碼判斷版本號是否在版本范圍之間
通用判斷版本號是否在兩者之間,也可以搭配判斷是否大于某版本號,小于取反即可
PS:需確保版本規(guī)范一致,比如都是.號分割的n位版本號
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è)需求,百度谷歌找了一圈,代碼都是有局限性的,無法通用,甚至是一堆錯(cuò)誤的東西轉(zhuǎn)來轉(zhuǎn)去......
當(dāng)前方法有兩個(gè)要點(diǎn),一個(gè)是需要將切開的版本號轉(zhuǎn)為數(shù)值型數(shù)組,還有一個(gè)是對比大小的時(shí)候轉(zhuǎn)為 -1 0 1 三個(gè)數(shù)值的對比,這樣,無論隔開的版本號有多大,總體分為幾段,都可以正確比對.
下面給大家分享javascript 檢測瀏覽器類型和版本的代碼
對象/特征檢測法
該方法是一種判斷瀏覽器能力(而非瀏覽器的確切型號)的通用方法。大部分JS專家認(rèn)為這個(gè)方法最合適,因?yàn)樗麄冋J(rèn)為按照該方法所編寫的腳本是經(jīng)得起未來考驗(yàn)的。
//獲取IE瀏覽器的版本號 //返回?cái)?shù)值,顯示IE的主版本號 function getIEVer() { var ua = navigator.userAgent; //獲取用戶端信息 var b = ua.indexOf("MSIE "); //檢測特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號字符串,并轉(zhuǎn)換為數(shù)值 } alert(getIEVer()); //返回?cái)?shù)值8(我的IE8)
如果更關(guān)注瀏覽器的能力而不在乎它實(shí)際的身份,就可以使用這種方法。
user-agent字符串檢測法
user-agent字符串提供了關(guān)于Web瀏覽器的大量信息,包括瀏覽器的名稱和版本。
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等,這些都屬于對象/特征檢測法了!通常要在不同的瀏覽器上寫不同的樣式(因?yàn)镮E樣式解析也各有不同),那就得判斷版本了.可以這樣做
//獲取IE瀏覽器的版本號 //返回?cái)?shù)值,顯示IE的主版本號 function getIEVer() { var ua = navigator.userAgent; //獲取用戶端信息 var b = ua.indexOf("MSIE "); //檢測特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號字符串,并轉(zhuǎn)換為數(shù)值 } alert(getIEVer()); //返回?cái)?shù)值7
檢測操作系統(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
相關(guān)文章
自適應(yīng)高度框架 ----屬個(gè)人收藏內(nèi)容
自適應(yīng)高度框架 ----屬個(gè)人收藏內(nèi)容...2007-01-01模擬彈出窗口效果,關(guān)閉層之前,不能選擇后面的頁內(nèi)容
模擬彈出窗口效果,關(guān)閉層之前,不能選擇后面的頁內(nèi)容...2007-02-02JS 截取字符串substr 和 substring方法的區(qū)別
JS 截取字符串substr 和 substring方法的區(qū)別,需要的朋友可以參考下,根據(jù)需要自行選擇。2009-10-10Javascript 數(shù)組添加一個(gè) indexOf 方法的實(shí)現(xiàn)代碼
Javascript 的字符串有個(gè) indexOf 的方法,能夠返回字符在指定的字符串中的位置,非常有用,本文介紹了如何給 Javascript 數(shù)組也添加一個(gè)類似的方法。2009-09-09JavaScript生成隨機(jī)數(shù)的4種自定義函數(shù)分享
這篇文章主要介紹了JavaScript生成隨機(jī)數(shù)的4種自定義函數(shù)分享,本文講解了4種方法并同時(shí)給出4個(gè)代碼片段,需要的朋友可以參考下2015-02-02小程序獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)的方法
這篇文章主要為大家詳細(xì)介紹了小程序獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下<BR>2022-08-08JavaScript調(diào)用傳遞變量參數(shù)的相關(guān)問題及解決辦法
本文給大家介紹javascript調(diào)用傳遞變量參數(shù)的相關(guān)問題及解決辦法,涉及到j(luò)s調(diào)用傳遞參數(shù)相關(guān)知識,對js調(diào)用傳遞參數(shù)感興趣的朋友一起學(xué)習(xí)吧2015-11-11javascript 獲取鏈接文件地址中第一個(gè)斜線內(nèi)的正則表達(dá)式
我想得到“windows”,請問用正則表達(dá)式怎么寫?2009-06-06