通常、バージョン番号が 2 つの値の間にあるかどうかを判断するために使用されます。また、特定のバージョン番号より大きいかどうかを判断するために使用することもできます。
追記: バージョン仕様が一貫していることを確認する必要があります。たとえば、バージョン仕様はすべて .
で区切られた n 桁のバージョン番号です。var APP = {}; //判断指定版本是否在版本范围之间,需确保版本规范一致;比如 (..,..,..) 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);
現在のプロジェクトでは、指定されたバージョンが 2 つのバージョンの間にあるかどうかを判断する必要があります。Baidu と Google で検索したところ、コードはすべて制限されており、汎用的に使用することはできず、さらには間違ったものが多数存在します。 ..
現在の方法には主に 2 つの点があります。1 つはカットのバージョン番号を数値配列に変換する必要があること、もう 1 つはサイズを比較する際に 3 つの値の比較に変換することです。 -1 0 1. このように、分割に関係なく、バージョン番号がどれくらいの大きさであるかがいくつかのセグメントに分割されており、正確に比較できます。
ブラウザの種類とバージョンを検出するための JavaScript コードを共有しましょう
物体/特徴検出方法
この方法は、ブラウザの機能を (ブラウザの正確なモデルではなく) 判断する一般的な方法です。ほとんどの JS 専門家は、この方法で記述されたスクリプトは将来も保証されると信じているため、このアプローチが最も適切であると考えています。
//获取IE浏览器的版本号 //返回数值,显示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))); //截取版本号字符串,并转换为数值 } alert(getIEVer()); //返回数值8(我的IE8)
ユーザーエージェント文字列検出メソッド
ユーザー エージェント文字列は、ブラウザの名前やバージョンなど、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浏览器");
var isIE = (navigator.appName == "Microsoft Internet Explorer");
//获取IE浏览器的版本号 //返回数值,显示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))); //截取版本号字符串,并转换为数值 } alert(getIEVer()); //返回数值7
var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系统,则返回true var isMac = (navigator.userAgent.indexOf("Mac") != -1); //如果是Macintosh系统,则返回true var isUnix = (navigator.userAgent.indexOf("X11") != -1); //如果是Unix系统,则返回true var isLinux = (navigator.userAgent.indexOf("Linux") != -1); //如果是Linux系统,则返回true