JsQuick--我的封裝的Js庫

JsQuickjavascript

該庫爲本人封裝的Js庫,還沒有進行瀏覽器兼容css

/**
 * 快速框架 版本:1.0.0
 * 日期:2015.02.26
 * 做者:簡楚恩
 */

/**
 * 快速獲取控件類 
 */
var $={
    /**
     * 根據ID獲取對象 $.id("對象名稱");
     * @param {Object} id 對象名稱
     */
    id:function(id){//根據ID獲取對象
        return "string" == typeof id ? document.getElementById(id):id;
    },
    /**
     * 根據標籤名返回指定名稱的標籤集合 $.tag("標籤名");
     * @param {Object} id 標籤名
     */
    tag:function(id){//根據標籤名獲取對象
        return "string" == typeof id ? document.getElementsByTagName(id):id;
    },
    //獲取css名稱對象('css名稱','查找對象的集合','指定對象內')qj.css('css','div',qj.o('wap'))
    css:function(className,ByTagName,elm){
        className=className.replace(/\-/g,"\\-");
        var testClass=new RegExp("(^|\\s)"+className+"(\\s|$)");
        var tag=tag||"*";
        var elm=elm||document;
        var elements = (tag == "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag);
        var returnElements = [];
        if (elements.getElementsByClassName) {
            //ie8如下不支持
            return elements.getElementsByClassName(className);
        } else {
            var current;
            var length = elements.length;
            for (var i = 0; i < length; i++) {
                current = elements[i];
                if (testClass.test(current.className)) {
                    returnElements.push(current);
                }
            }
            return returnElements;//注意,此時返回的是數組,和原生方法返回的對象仍是有差異的。
        }
    },
    /**
     * 根據 class 獲取HTML對象
     * @param {Object} searchClass class
     * @param {Object} node 節點
     * @param {Object} tag 標籤
     */
    getElementsByClass:function(searchClass,node,tag){
        var classElements=new Array();
        if(node==null){
            node=document;
        }
        if(tag==null){
            tag="*";
        }
        var els=node.getElementsByTagName(tag);
        var elsLen=els.length;
        var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for(i=0,j=0;i<elsLen;i++){
            if(pattern.test(els[i].className)){
                classElements[j]=els[i];
                j++;
            }
        }
        return classElements;
    }
};
/**
 * 基本工具類UtilsBase
 */
var qutil={
    /**
     * 身份證號校驗
     * @param {Object} cardId 身份證號
     */
    isIdCard:function(cardId){
        //身份證正則表達式(18位)
        var isIdCardReg=/^[1-9]\d{5}(19\d{2}|[2-9]\d{3})((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d{4}|\d{3}X)$/i;
        var lastId="10X98765432";//最後一位身份證的號碼
        var first=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//1-17係數
        var sum=0;        
        if(!isIdCardReg.test(cardId)){//校驗身份證,失敗則返回false
            return false;
        }        
        var year=cardId.substr(6,4);//
        var month=cardId.substr(10,2);//
        var day=cardId.substr(12,2);//
        var birthday=cardId.substr(6,8);//出生年月日        
        if(birthday!=qutil.dateToString(new Date(year+'/'+month+'/'+day))){//校驗日期是否合法
            return false;
        }
        for(var i=0;i<cardId.length-1;i++){
            sum+=cardId[i]*first[i];
        }
        var result=sum%11;
        var last=lastId[result];//計算出來的最後一位身份證號碼
        if(cardId[cardId.length-1].toUpperCase()==last){
            return true;
        }else{
            return false;
        }
    },
    /**
     * 日期轉字符串,返回日期格式20150303
     * @param {Object} date 日期
     */
    dateToString:function(date){        
        if(date instanceof Date){    
            console.log(date);
            var year=date.getFullYear();
            var month=date.getMonth()+1;
            month=month<10?'0'+month:month;//判斷月份是否小於10,小於10則補'0'
            var day=date.getDate();
            day=day<10?'0'+day:day;//判斷日期是否小於10,小於10則補'0'
            console.log(year+month+day);
            return year+month+day;
        }
        return '';
    },
    /**
     * 獲取鼠標絕對位置,經過加載鼠標移動事件進行獲取事件
     * @param {Object} e 事件
     */
    getMouseAbsolutePosition:function(e){
        var posX=0;
        var posY=0;
        if(!e){
            var e=window.event;
        }
        posX=(e.pageX)?e.pageX:window.event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
        posY=(e.pageY)?e.pageY:window.event.clientY+document.body.scrollTop+document.documentElement.scrollTop;
        return {
            x:posX,
            y:posY
        };
    }
};
/**
 * 檢測工具類,基於正則表達式:check
 */
var ck={
    /**
     * 判斷是否日期格式,返回bool
     * @param {Object} sDate 日期字符串
     */
    isDate:function(sDate){
        var reg=/^(\d{4})-(\d{2})-(\d{2})$/;//正則表達式
        var result=sDate.match(reg);//檢索指定正則表達式
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷字符串是否爲空,返回bool
     * @param {Object} sNullOrEmpty 空字符串
     */
    isNullEmpty:function(sNullOrEmpty){
        if(sNullOrEmpty.length==""||sNullOrEmpty.length<=0){
            return false;    
        }else{
            return true;
        }
    },
    /**
     * 判斷是否貨幣,返回bool
     * @param {Object} sCurrent 貨幣字符串
     */
    isCurrent:function(sCurrent){
        var bResult1=sCurrent.match("[^0-9.-]");
        var bResult2=sCurrent.match("[[0-9]*[.][0-9]*[.][0-9]*");  
        var bResult3=sCurrent.match("[[0-9]*[-][0-9]*[-][0-9]");  
        var bResult4=sCurrent.match("(^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$)|(^([-]|[0-9])[0-9]*$)"); 
        if(bResult1!=null||bResult2!=null||bResult3!=null||bResult4!=null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否數字,返回bool
     * @param {Object} sNum 數字字符串
     */
    isNumeric:function(sNum){
        var result=sNum.match("^(-|\\+)?\\d+(\\.\\d+)?$");        
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否URL,返回bool
     * @param {Object} sUrl URL字符串
     */
    isUrl:function(sUrl){
        var result=sUrl.match("http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否Email,返回bool
     * @param {Object} sMail 郵箱字符串
     */
    isMail:function(sMail){
        var result=sMail.match("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否郵編,返回bool
     * @param {Object} sPostCode 郵編字符串
     */
    isPostCode:function(sPostCode){
        var result=sPostCode.match("^\\d{6}$");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否電話號碼,返回bool
     * @param {Object} sTelephone 電話號碼字符串
     */
    isTelephone:function(sTelephone){
        var result=sTelephone.match("^(\\(\\d{3}\\)|\\d{3}-)?\\d{8}$");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否手機號碼,返回bool
     * @param {Object} sMobilePhone 手機號碼字符串
     */
    isMobilePhone:function(sMobilePhone){
        var result=sMobilePhone.match("^\\d{11}$");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否身份證,校驗位數(15||18),返回bool
     * @param {Object} sIdCard 身份證字符串
     */
    isIdCard:function(sIdCard){
        var result=sIdCard.match("^\\d{15}|\\d{18}$");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 判斷是否中英表達式,返回bool
     * @param {Object} sCE 中英文表達式字符串
     */
    isCE:function(sCE){
        var result=sCE.watch("^[a-zA-Z\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$");
        if(result==null){
            return false;
        }else{
            return true;
        }
    },
    /**
     * 校驗電話號碼和傳真號碼,返回bool
     * @param {Object} sTel 傳真或固話
     */
    isTel:function(sTel){        
        var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
        if(!patrn.exec(sTel)){
            return false;
        }
        return true;
    },
    /**
     * 校驗Mac地址
     * @param {Object} macaddr Mac地址
     */
    isMacAddress:function(macaddr){
        var reg1 = /^[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}\-[A-Fa-f0-9]{1,2}$/;
           var reg2 = /^[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}\:[A-Fa-f0-9]{1,2}$/;
           if(reg1.test(macaddr)){
               return true;
           }else if(reg2.test(macaddr)){
               return true;
           }else{
               return false;
           }
    }
};
/**
 * 瀏覽器操做工具類:browse
 */
var  browse={
    /**
     * 返回瀏覽器全部信息
     */
    getBrowserInfo:function(){
        //保存瀏覽器信息
        var browserInfo={
            appName:navigator.appName,//瀏覽器類型名
            appVersion:navigator.appVersion,//瀏覽器的平臺和版本信息
            appLangulage:navigator.browserLanguage,//瀏覽器語言
            cpuClass:navigator.cpuClass,//瀏覽器系統的CPU等級
            system:navigator.platform,//操做系統,瀏覽器的操做系統平臺
            systemLangulage:navigator.systemLanguage,//系統語言
            userLangulage:navigator.userLanguage,//用戶語言
            onLine:navigator.onLine,//在線狀況,系統是否處於脫機模式
            dpi:{//屏幕分辨率
                "width":window.screen.width,
                "height":window.screen.height
            },
            color:window.screen.colorDepth+"位",//顏色
            fontSmoothing:window.screen.fontSmoothingEnabled,//字體平滑
            appMinorVersion:navigator.appMinorVersion,//瀏覽器次級版本
            appCodeName:navigator.appCodeName,//瀏覽器代碼名
            cookieEnabled:navigator.cookieEnabled,//cookie是否開啓
            userAgent:navigator.userAgent,//瀏覽器的用戶代理報頭
            javaEnabled:navigator.javaEnabled,//瀏覽器是否啓用Java
            taintEnabled:navigator.taintEnabled//瀏覽器是否啓用數據污點
        };
        return browserInfo;
    },
    setDefault:function(url){
        
    },
    /**
     * 獲取瀏覽器URL
     */
    getUrl:function(){
        return location.href;
    },
    /**
     * 獲取URL參數
     */
    getUrlParam:function(){
        return location.search;
    },
    /**
     * 獲取頁面來源
     */
    getFrom:function(){
        return document.referrer;
    },
    /**
     * 獲取指定的URL參數值
     * @param {Object} name 參數名
     */
    request:function(name){
        var url=this.getUrl();
        var pList=new Array();
        if(url.indexOf("?")>0){//匹配?
            pList=url.split("?")[1].split("&");
        }else if(url.indexOf("#")>0){//匹配#
            pList=url.split("#")[1].split("&");
        }
        if(url.length>0){
            for(var i=0;i<pList.length;i++){
                var getValue=pList[i].split("=");
                if(getValue[0].toUpperCase()==name.toUpperCase()){
                    return getValue[1];
                    break;
                }
            }
            return "";
        }
    },
    /**
     * 獲取瀏覽器窗口大小
     */
    getBrowserWindowSize:function(){
        var bWidth=0,bHeight=0;
        if(typeof(window.innerWidth)=="number"){
            //非IE瀏覽器
            bWidth=window.innerWidth;
            bHeight=window.innerHeight;
        }else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
            //IE 6+的 標準兼容模式
            bWidth=document.documentElement.clientWidth;
            bHeight=document.documentElement.clientHeight;
        }else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
            //兼容 IE4
            bWidth=document.body.clientWidth;
            bHeight=document.body.clientHeight;
        }
        return {
            width:bWidth,
            height:bHeight
        };
    },
    /**
     * 打開一個新的瀏覽器窗口
     * @param {Object} url 地址
     * @param {Object} name 窗口名
     * @param {Object} width 窗口寬度
     * @param {Object} height 窗口高度
     */
    openBrowserWindow:function(url,name,width,height){
        if(!name){
            name="browserWin";
        }
        var top=(screen.availHeight/2)-(height/2);
        var left=(screen.availWidth/2)-(width/2);
        var features="top="+top+",left="+left+",resizable=yes,scrollbars=1,width="+width+",height="+height+"location=0,toolbar=0,status=0,menubar=0";
        var newWindow=window.open(url,name,features);
        newWindow.focus();
    }
};

/**
 * Cookies操做類:cookies
 */
var cookies={
    /**
     * 設置Cookies
     * @param {Object} name 名稱
     * @param {Object} value 值
     * @param {Object} expiresHours Cookie過時時間 0=不設置
     * @param {Object} path 域
     */
    setCookie:function(name,value,expiresHours,path){
        try{
            var cookieString=escape(name)+"="+escape(value);//存儲編碼
            //判斷是否設置過時時間
            if(expiresHours>0){
                var date=new Date();
                date.setTime(date.getTime()+expiresHours*3600*1000);//以小時計算
                cookieString=cookieString+";expires="+date.toGMTString();
            }
            //是否設置域
            path=path==""?"":";path="+path;
            document.cookie=cookieString;
            return true;
        }catch(e){
            return false;
        }
    }
};

/**
 * 動態加載類,Load
 */
var load={
    /**
     * 動態加載Js或css文件
     * @param {Object} fileName 文件名
     * @param {Object} fileType 文件類型 js or css
     * @param {Object} fileUrl 文件路徑
     */
    loadJsCssFile:function(fileName,fileType,fileUrl){
        if(fileType=="js"){//若是文件名是一個外部的JavaScript文件
            var fileRef=document.createElement("script");
            fileRef.setAttribute("type","text/javascript");
            fileRef.setAttribute("src",fileUrl+fileName);
        }else if(fileType=="css"){//若是文件名是一個外部的CSS文件
            var fileRef=document.createElement("link");
            fileRef.setAttribute("rel","stylesheet");
            fileRef.setAttribute("type","text/css");
            fileRef.setAttribute("href",fileUrl+fileName);
        }
        if(typeof fileRef!="undefined"){
            document.getElementsByTagName("head")[0].appendChild(fileRef);
        }
    }
};

/**
 * 頁面工具類:page
 */
var page={
    /**
     * 刷新頁面
     */
    refresh:function(){
        location.replace(location.href);
    },
    /**
     * 後退,服務端控件禁止調用
     */
    goBack:function(){
        window.history.go(-1);
    },
    /**
     * 前進,服務端控件禁止調用
     */
    goForward:function(){
        window.history.forward();
    },
    /**
     * 關閉頁面
     */
    close:function(){
        window.close();
    },
    /**
     * 打印當前頁面,調用瀏覽器打印方法
     */
    print:function(){
        window.print();
    },
    /**
     * 從新加載頁面
     */
    reload:function(){
        window.location.reload();
    },
    /**
     * 加入收藏夾1,Firefox需添加 rel="sidebar"
     */
    addFavorite1:function(){
        var title=document.title;//網頁標題
        var URL=document.URL;//網頁地址
        try{
            window.external.AddFavorite(URL,title);//IE
        }catch(e){
            try{
                window.sidebar.addPanel(title,URL,"");//Firefox-火狐
            }catch(e){
                alert("您的瀏覽器不支持,請使用Ctrl+D手動收藏!");//chrome  opera  safari
            }
        }
    },
    /**
     * 加入收藏夾2,Firefox需添加 rel="sidebar"
     * @param {Object} url 網址
     * @param {Object} title 標題
     */
    addFavorite2:function(url,title){
        try{
            window.external.AddFavorite(URL,title);//IE
        }catch(e){
            try{
                window.sidebar.addPanel(title,URL,"");//Firefox-火狐
            }catch(e){
                alert("您的瀏覽器不支持,請使用Ctrl+D手動收藏!");//chrome  opera  safari
            }
        }
    }
    
    
};

/**
 * 正則表達式庫:RegLib
 */
var RegLib={
    "非負整數":"^d+$",
    "正整數":"^[0-9]*[1-9][0-9]*$",
    "非正整數":"^((-d+)|(0+))$",
    "負整數":"^-[0-9]*[1-9][0-9]*$",
    "整數":"^-?d+$",
    "非負浮點數":"^d+(.d+)?$",
    "正浮點數":"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$",
    "非正浮點數":"^((-d+(.d+)?)|(0+(.0+)?))$",
    "負浮點數":"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$",
    "浮點數":"^(-?d+)(.d+)?$",
    "字母":"^[A-Za-z]+$",
    "大寫字母":"^[A-Z]+$",
    "小寫字母":"^[a-z]+$",
    "數字字母":"^[A-Za-z0-9]+$",
    "數字_字母":"^w+$",
    "Email":"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$",
    "url":"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"
}

 

 

 

 

Demo文件:下載java

出處:https://github.com/jianxuanbing/JsQuicknode

相關文章
相關標籤/搜索