バージョン番号がバージョン範囲内にあるかどうかを判断するための一般的な JavaScript コード_JavaScript スキル

WBOY
リリース: 2016-05-16 15:29:04
オリジナル
1521 人が閲覧しました

通常、バージョン番号が 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浏览器");
ログイン後にコピー
通常、私たちが最も行うことは、それが IE であるかどうかを判断することです。他のブラウザーは通常、IE と FF に準拠するだけで済みます。

var isIE = (navigator.appName == "Microsoft Internet Explorer");
ログイン後にコピー
IE の判断は、上記の方法よりもはるかに複雑です。window.ActiveXObject、document.all などの、IE 独自のものを使用できます。通常、これらはすべてオブジェクト/機能検出メソッドを使用する必要があります。異なるブラウザで異なるスタイルを記述する場合 (IE スタイルの解析も異なるため)、これを行うことができます

//获取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
ログイン後にコピー
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!