js常用功能汇总

var Utils = function() {
    this.Tools;
    this.ui;
};

Utils = new Utils();

Utils.prototype.Tools = {

    year:'',
    month:'',
    day:'',
    week:'',
    time:'',
    hours:'',
    minute:'',
    second:'',
    weeks:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
    
    /**
     * 获取当前用户使用的浏览器类型
     * @returns
     */
    browserVersion:function(){
        var explorer = window.navigator.userAgent;    
        
        if (explorer.indexOf("MSIE") >= 0) {// ie10及以下
            var b_version = navigator.appVersion;
            var version = b_version.split(";");
            version = version[1].replace(/[ ]/g, "");
            version = version.split('MSIE')[1];
            browser = 'IE:' + version;
        } else if (explorer.indexOf("Firefox") >= 0) {// Firefox
            browser = 'Firefox';
        } else if (explorer.indexOf("Chrome") >= 0) {// Chrome
            browser = 'Chrome';
        } else if (explorer.indexOf("Opera") >= 0) {// Opera
            browser = 'Opera';
        } else if (explorer.indexOf("Safari") >= 0) {// Safari
            browser = 'Safari';
        } else if (explorer.indexOf("Trident/7.0") >= 0) {// IE11
            browser = 'IE:10.0以上';
        }
        return borwser;
    },
    strFormatDate : function(param) {
       var months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Setp','Oct','Nov','Dec'];
       var weeks=['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];
       var date=param.split(" ");
       var browser= new Utils().browserVersion();
       if(browser=='Chrome'||browser=='Firefox'||browser=='IE:10.0以上'){
           this.year=date[3];
           this.month=months[date[1]];
           this.day=date[2];
           this.time=date[4];
           this.week=date[weeks[0]];
           return this.year+"年"+this.month+"月"+this.day+"日  "+this.time;
       }else if(browser=='IE:10'||browser=='IE:9'||browser=='IE:8'){
           this.year=date[5];
           this.month=months[date[1]];
           this.day=date[2];
           this.time=date[3];
           this.week=date[weeks[0]];
           return this.year+"年"+this.month+"月"+this.day+"日  "+this.time;                                                                            
       }
    },
    /**
     * 
     * @param date
     * @returns {String}
     */
    DateFormatDate:function(date){
        this.year=date.getFullYear();
        this.month=date.getMonth()+1;
        this.day=date.getDate();
        this.hours=date.getHours();
        this.minute=date.getMinutes();
        this.second=date.getSeconds();
        this.week=date.getDay();
        return this.year+"年"+this.month+"月"+this.day+"日   "+this.hours+":"+this.minute+":"+this.second+" 星期"+this.weeks[this.week];
    },
    /**
     * 解决浏览器地址栏乱码问题
     * @param strParame 参数名称
     * @returns
     */
    formatUrlParam:function(strParame){
          var args = new Object();
          var query = location.search.substring(1); // Get query string
          var pairs = query.split("&"); // Break at ampersand
          for ( var i = 0; i < pairs.length; i++) {
            var pos = pairs[i].indexOf('='); // Look for "name=value"
            if (pos == -1)
              continue; // If not found, skip
            var argname = pairs[i].substring(0, pos); // Extract the name
            var value = pairs[i].substring(pos + 1); // Extract the value
            value = decodeURIComponent(value); // Decode it, if needed
            args[argname] = value; // Store as a property
          }
          return args[strParame]; // Return the object
        
    },
    /**
     * 获取选中复选框的值
     * @param checkBoxName checkbox的name
     * @returns {String}
     */
    multipleChoiceCheckBox:function(checkBoxName){
        var content='';
        var serids =document.getElementsByName(checkBoxName);
        for(var i=0;i<serids.length;i++){
            if(serids[i].checked){
                content+=serids[i].value+",";
            }
        }
        content=content.substr(0,content.length-1);
        return content;
    },
    /**
     * 复选框--反选
     * @param checkBoxName checkbox的name
     * @param parentName   控制反选按钮的id
     */
    reverseFlotationCheckBox:function(checkBoxName,parentName)
        var bool=$("#"+parentName).attr("checked"); 
        var serids =document.getElementsByName(checkBoxName);
        if(bool){
            for(var i=0;i<serids.length;i++){
                serids[i].checked=true;
            }
        }else{
            for(var i=0;i<serids.length;i++){
                serids[i].checked=false;
            }
        }
    },
    /**
     * 复选框--全选
     * @param checkBoxName checkbox的name
     * @param parentName   控制反选按钮的id
     */
    checkAllCheckBox:function(checkBoxName,parentName){
        var serids =document.getElementsByName(checkBoxName);
        var bool=$("#"+parentName).attr("checked"); 
        if(bool){
            for(var i=0;i<serids.length;i++){
                serids[i].checked=true;
            }
        }else{
            for(var i=0;i<serids.length;i++){
                serids[i].checked=false;
            }
        }
    },
    addOption:function(id,path,defaultValue){
        //给select添加选项   
        $("#"+id).empty();
        $.ajax({ 
            url:  path, 
            type: "POST", 
            data:'type=gfType',
            dataType: "json", 
            async: false, 
            success: function(results) {
                for(var i=0;i<results.length;i++) {
                    
                    if(results[i].id == defaultValue) {
                        html += "<option value='" + results[i].id + "' selected>" + results[i].codename + "</option>";
                    } else {
                        html += "<option value='" + results[i].id + "'>" + results[i].codename + "</option>";
                    }
                }
                $("#"+id).append(html);
            },
            error: function(e) {
                YMLib.Tools.showPrompt("!-logo", "系统错误!请联系管理员!", 5000);
            }
        });
    },
    
    /**
    *获取字符串字节数
    */
    GetStringByteLength:function(val){
        var Zhlength=0;// 全角
        var Enlength=0;// 半角
        
        for(var i=0;i<val.length;i++){
            if(val.substring(i, i + 1).match(/[^x00-xff]/ig) != null)
            Zhlength+=1;
            else
            Enlength+=1;
        }
        // 返回当前字符串字节长度
        return (Zhlength*2)+Enlength;
    },
    
    //js实现返回顶部
    BackToTop:function(){
        $("body,html").animate({scrollTop:0},1000);
    },
    /**
    *复制到粘贴板
    */
    copyToShearPlate:function(){
        $('.content').click(function(){
        $(this).select();
        });
 
        //设置swf路径
        ZeroClipboard.setMoviePath("ZeroClipboard.swf"); 
        //创建对象
        var clip = new ZeroClipboard.Client();
        //设置手型
        clip.setHandCursor(true); 
        //绑定按钮(目标对象id)
        clip.glue('copy_btn');
        //复制内容
        clip.addEventListener( "mouseOver", function(client) {
            client.setText($('#content').text());
        });
        //复制成功后的提示
        clip.addEventListener( "complete", function(){    
            alert("copyed successful");     
        }); 
    },
    /**
    *判断是否是正确的url地址
    */
    IsURL:function(str_url) { 
        var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
            "?(([0-9a-z_!~*'().= $%-] : )?[0-9a-z_!~*'().= $%-] @)?" //ftp的user@
            "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
            "|" // 允许IP和DOMAIN(域名)
            "([0-9a-z_!~*'()-] .)*" // 域名- www.
            "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名
            "[a-z]{2,6})" // first level domain- .com or .museum
            "(:[0-9]{1,4})?" // 端口- :80
            "((/?)|" // a slash isn't required if there is no file name
            "(/[0-9a-z_!~*'().;?:@= $,%#-] ) /?)$";
          var re=new RegExp(strRegex);
          //re.test()
          if (re.test(str_url)){
              return (true);
          }else{
              return (false);
          }
    },
    setValueUeditor:function(){
    //当editor创建完毕,给editor设置内容
         UE.getEditor('solution').ready(function(){
             UE.getEditor('solution').setContent(obj.solution);
         });
    }
    
};

Utils.prototype.ui = {
        
    /*
    *拼接表格
    * @param source 格式如下:
        {
            "qlmc":"桥梁名称",
            "qldm":"桥梁代码",
            "qlzxzh":"桥梁中心桩号",
            "qlkjfl":"桥梁跨径分类",
            "xzqhbm":"行政区划编码",
            "lxmc":"路线名称",
            "lxbm":"路线代码"
        }
    * @param tableId 表格id
    * @param path   请求地址
    *
    */
     joinTable:function(source,tableId,path){
        field="[[{field: 'ck', checkbox: true},";
         var source=data.data;
         for(var key in source){
             field+="{field: '"+key+"', title:'"+source[key]+"',  100, align: 'center'},";
         }
         field=field.substr(0,field.length-1);
         field+="]]";
         field = eval(field);
         $('#'+tableId).datagrid({
                 border: false,
                 fit: true,
                 fitColumns: true,
                 rownumbers: true,
                 pagination: true,
                 striped: true,
                 singleSelect: false,
                 selectOnCheck: true,
                 checkOnSelect: true,
                 url: path,
                 columns:field
         });
     },
     /*
        *表格自适应高度
        * @param tb_div table 所在div的id
        * @param tableId table id
        * @param path 请求地址
        *
     */
     autoHeight:function(tb_div,tableId,path){
       var pageSize=Math.floor($('#'+tb_div).height()/40)-1;
        $('#'+tableId).datagrid({
            fit : true,
            fitColumns : true,
            loadMsg : '正在加载数据,请稍候...',
            url : path,
            rownumbers : true,
            autoRowHeight : false,
            striped : true,
            pagination : true,
            pageSize : pageSize,
            pageList : [ pageSize, pageSize*2, pageSize*3 ],
            rowStyler:function(index,row){
                return "height:50px;line-height:50px";
            }
        });
     }
     
}

    
    
    
    
    
    //正则 去除目标对象中的图片
    //return param.replace(/<img([^>]*)>/gim,"");    
    //去除目标对象的前后空格
    //.replace(/^s+|s+$/g, '')
    //邮箱验证方法
    //if(/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(value)){
        //flag=true;
    //}
    //手机号和座机的验证方法
     //if((/^1[3|5|8]d{9}$/.test(value)) || (/^0d{2,3}-?d{7,8}$/.test(value))){
        //flag=true;
    //}
    //清除指定字符中的html标签
    //describe = datas[i].describe.replace(/<[^>].*?>/g,''); 
    
    //判断指定字符串是否包含汉字
    //(/[u4e00-u9fa5]+/).test(describe)
    
    
        /**
     * 通过restClient将url转换成json数据.
     *
     * @param url  需要转换的url
     * @return    返回json
     */
    //public String parseServiceUri(String url){
        
        //RestClient client = new RestClient();
        
//        HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        
//        String path = request.getContextPath();  
//        String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";  
//        org.apache.wink.client.Resource resource = client.resource("http://192.168.0.250:6080/"+url);
        //org.apache.wink.client.Resource resource = client.resource(url);

        //String response = resource.accept(MediaType.APPLICATION_JSON).get(String.class);

        //return response; 
        
    }
    
    //参数乱码
    //new String(((String)map.get("name")).getBytes("ISO-8859-1"), "UTF-8")
    
    
原文地址:https://www.cnblogs.com/ssrsblogs/p/5708144.html