zoukankan      html  css  js  c++  java
  • 工作需要而寫的 Javascript 常用方法【一】

    瀏覽器與系統判斷
    var myDccMacFW = {
        
    /*判斷瀏覽器*/
        uaMatch: 
    function (ua) {
            ua 
    = ua.toLowerCase();
            
    var match = /(webkit)[ \/]([\w.]+)/.exec(ua) ||
            
    /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(ua) ||
            
    /(msie) ([\w.]+)/.exec(ua) ||
            
    !/compatible/.test(ua) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(ua) ||
            [];
            
    var matchOS = /(mac)[\sOSos]+/.exec(ua) || /(win)dows/gi.exec(ua) || [];
            
    return { browser: match[1|| "", version: match[2|| "0", os: matchOS[1|| "" };
        },
        browser: {},
        operaSystem: {}

    };

    (
    function ($) {//想利用VS的格式化(ctrl+E && ctrl+D),要將“(function ($)”之間的空格去掉才行;
        /*執行瀏覽器判斷
        *IE: myDccMacFW.browser.msie:bool
        *FF: myDccMacFW.browser.mozilla:bool
        *chrome,safari: myDccMacFW.browser.webkit:bool
        *opera: myDccMacFW.browser.opera:bool
        ** operaSystem
        *  myDccMacFW.operaSystem.win || myDccMacFW.operaSystem.mac
        
    */
        
    var browserMatch = $.uaMatch(navigator.userAgent);
        
    if (browserMatch.browser) {
            $.browser[browserMatch.browser] 
    = true;
            $.operaSystem[browserMatch.os] 
    = true;
            $.browser.version 
    = browserMatch.version;
        }

    })(myDccMacFW); 

    //注:內置原型的prototype是只讀;
    /*

    *不帶任何一個參數都將全部字符來計算;
    *len:int            要計算的長度,以中文長度計
    *callback:function    callback(a,b,isSubstr)=>表示在參數len長度之中,a為英文長度,b為中文長度,isSubstr為是否截字了
    *計算字符串中文長度,如“abc[d]我”長度為3,而“ef你”長度為2
    */
    String.prototype.CounCN 
    = function (len, callback) {
        
    var a = b = 0, _isSubstr = false;
        
    for (i = 0; i < this.length; i++) {
            
    if (this.charCodeAt(i) < 128) {//一字節,如字母,數字,英文符號 etc..
                a++;
            }
            
    else
                b
    ++;
            
    if (len && callback)
                
    if (a + b * 2 >= len * 2) {
                    
    if (a + b * 2 > len * 2) {
                        a
    --;
                    }
                    _isSubstr 
    = this.length > a + b;
                    
    break;
                }
        }
        
    if (callback)
            callback(a, b, _isSubstr);
        
    return Math.ceil((a + b * 2/ 2);
    }
    /*
    截取字符串長度(漢字當兩個字符計算),如“abc[d]我”長度為3,而“ef你”長度為2
    *len:int 要截取的長度,以中文長度計
    *ext:string 表示長度過長時要追加的字符,默認為空;
    *調用如:alert("0102030405060708091我".dccSubstr(10,"..."));
    */
    String.prototype.dccSubstr 
    = function (len, ext) {
        
    var _a = _b = 0, _isSubstr = false;
        
    this.CounCN(len, function (a, b, isSubstr) { _a = a, _b = b, _isSubstr = isSubstr; });
        
    if (_isSubstr)
            
    return this.substr(0, (_a + _b)) + (ext || "");
        
    else return this.substr(0, (_a + _b));

  • 相关阅读:
    js上传超大文件解决方案
    java上传超大文件解决方案
    jsp上传超大文件解决方案
    .net上传超大文件解决方案
    asp.net上传超大文件解决方案
    PHP上传超大文件解决方案
    内网大文件传输断点续传源码
    HDU
    Android中makfile的随记
    android 阿拉伯语下,图库中编辑运动轨迹图片,动画中会显示绿色的图片
  • 原文地址:https://www.cnblogs.com/SeaSun/p/2136299.html
Copyright © 2011-2022 走看看