Kod javascript biasa untuk menentukan sama ada nombor versi adalah antara julat versi_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:29:04
asal
1526 orang telah melayarinya

Ia biasanya digunakan untuk menentukan sama ada nombor versi berada di antara kedua-duanya. Ia juga boleh digunakan untuk menentukan sama ada ia lebih besar daripada nombor versi tertentu Jika ia kurang daripada nombor versi tertentu, ia boleh dinafikan

PS: Adalah perlu untuk memastikan bahawa spesifikasi versi adalah konsisten, contohnya, semuanya adalah nombor versi n-digit yang dipisahkan dengan .

 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);
Salin selepas log masuk

Projek semasa perlu menentukan sama ada versi yang ditentukan berada di antara dua versi Selepas mencari di Baidu dan Google, semua kod adalah terhad, tidak boleh digunakan secara universal, malah terdapat banyak perkara yang salah. ..

Kaedah semasa mempunyai dua perkara utama Satu ialah nombor versi yang dipotong perlu ditukar kepada tatasusunan berangka, dan satu lagi ialah apabila membandingkan saiz, ia ditukar kepada perbandingan tiga nilai​​ daripada -1 0 1. Dengan cara ini, tanpa mengira pemisahan Seberapa besar nombor versi itu dibahagikan kepada beberapa segmen dan boleh dibandingkan dengan betul

Izinkan saya berkongsi dengan anda kod javascript untuk mengesan jenis dan versi penyemak imbas

Kaedah pengesanan objek/ciri

Kaedah ini ialah cara umum untuk menentukan keupayaan penyemak imbas (bukan model sebenar penyemak imbas). Kebanyakan pakar JS menganggap pendekatan ini paling sesuai kerana mereka percaya skrip yang ditulis dengan cara ini adalah bukti masa depan.

//获取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)
Salin selepas log masuk

Gunakan kaedah ini jika anda lebih mementingkan keupayaan penyemak imbas daripada identiti sebenar.

kaedah pengesanan rentetan ejen pengguna

Rentetan ejen pengguna menyediakan banyak maklumat tentang penyemak imbas web, termasuk nama dan versi penyemak imbas.

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浏览器");
Salin selepas log masuk

Biasanya perkara yang paling kami lakukan ialah menentukan sama ada pelayar lain secara amnya memenuhi piawaian Sebilangan pelanggan hanya perlu mematuhi IE dan FF Kemudian kami boleh melakukan ini:

var isIE = (navigator.appName == "Microsoft Internet Explorer");
Salin selepas log masuk

Menilai IE jauh lebih banyak daripada kaedah di atas Anda boleh menggunakan lebih banyak perkara unik IE, seperti: window.ActiveXObject, document.all, dll. Ini semua kaedah pengesanan objek/ciri dalam penyemak imbas yang berbeza Jika anda menulis gaya yang berbeza (kerana penghuraian gaya IE juga berbeza), maka anda perlu menilai versi anda boleh melakukan ini

//获取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
Salin selepas log masuk

Kesan sistem pengendalian:

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
Salin selepas log masuk
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan