버전 번호가 버전 범위_javascript 기술 사이에 있는지 확인하는 일반적인 JavaScript 코드

WBOY
풀어 주다: 2016-05-16 15:29:04
원래의
1526명이 탐색했습니다.

일반적으로 버전 번호가 둘 사이에 있는지 확인하는 데 사용됩니다. 특정 버전 번호보다 큰지 확인하는 데에도 사용할 수 있습니다. 🎜>

PS: 버전 사양이 일치하는지 확인해야 합니다. 예를 들어 모두 .로 구분된 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);
로그인 후 복사
현재 프로젝트는 지정된 버전이 두 버전 사이에 있는지 확인해야 합니다. Baidu와 Google에서 검색한 결과 코드가 모두 제한되어 있고 보편적으로 사용할 수 없으며 심지어 잘못된 일이 많이 발생합니다. ..

현재 방식은 크게 두 가지가 있습니다. 하나는 컷 버전 번호를 숫자 배열로 변환해야 한다는 것이고, 다른 하나는 크기를 비교할 때 세 가지 값의 비교로 변환한다는 것입니다. of -1 0 1. 이렇게 하면 구분에 관계없이 버전 번호가 얼마나 큽니까? 여러 부분으로 나누어서 정확하게 비교할 수 있습니다.

브라우저 유형 및 버전을 감지하는 자바스크립트 코드를 공유하겠습니다

객체/특징 감지 방법

이 방법은 (브라우저의 정확한 모델이 아닌) 브라우저의 기능을 확인하는 일반적인 방법입니다. 대부분의 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)
로그인 후 복사
브라우저의 실제 정체성보다 성능이 더 중요하다면 이 방법을 사용하세요.

사용자 에이전트 문자열 감지 방법

사용자 에이전트 문자열은 브라우저 이름과 버전을 포함하여 웹 브라우저에 대한 풍부한 정보를 제공합니다.

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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿