• 字符串长度计算、截取、url参数获取、计算百分比、时间戳格式化


    1.中英混合文字字符截取

    //中文长度截取计算,可取中英混合,个数向上取整,精确度1个英文字符误差,一个英文算一个字符,一个汉字算一个字符。
        //sub("中文zlsd",1) -> "中"
        //sub("中文zlsd",3) -> "中文"
         function subCh (str,n){ 
            var r=/[^x00-xff]/g; 
            if(str.replace(r,"mm").length<=n){return str;} 
            var m=Math.floor(n/2); 
            for(var i=m;i<str.length;i++){ 
                if(str.substr(0,i).replace(r,"mm").length>=n){ 
                    return str.substr(0,i); 
                } 
            } 
            return str; 
        } 

    2.去掉字符前后空格

    //去掉字符串前后空格
    String.prototype.trim = function () { return this.replace(/^s*/, "").replace(/s*$/, ""); }

    3.获取中英文字符串长度

    //获取中英文字符串长度,一个中文算一个,一个英文算一个
        function getStrLength(str){
            var cArr = str.match(/[^x00-xff]/ig);
            return str.length + (cArr == null ? 0 : cArr.length);
        }

    4.获取url参数

    //url参数获取
        String.prototype.GetValue= function(parm) {  
            var reg = new RegExp("(^|&)"+ parm +"=([^&]*)(&|$)");  
            var r = this.substr(this.indexOf("?")+1).match(reg);  
            if (r!=null) return unescape(r[2]); return null;  
        } 

     5.百分比计算

    function GetPercent(num, total) { 
        num = parseFloat(num); 
        total = parseFloat(total); 
        if (isNaN(num) || isNaN(total)) { 
        return "-"; 
        } 
        return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.00 + "%"); 
    }

     6.时间戳格式化

    Date.prototype.format = function(format) {
       var date = {
              "M+": this.getMonth() + 1,
              "d+": this.getDate(),
              "h+": this.getHours(),
              "m+": this.getMinutes(),
              "s+": this.getSeconds(),
              "q+": Math.floor((this.getMonth() + 3) / 3),
              "S+": this.getMilliseconds()
       };
       if (/(y+)/i.test(format)) {
              format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
       }
       for (var k in date) {
              if (new RegExp("(" + k + ")").test(format)) {
                     format = format.replace(RegExp.$1, RegExp.$1.length == 1
                            ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
              }
       }
       return format;
    }

    new Date(list[i].possitionUpdateTime).format('yyyy-MM-dd h:m:s');//2015-04-28 23:47:52

  • 相关阅读:
    SaaS模式应用之多租户系统开发(单数据库多Schema设计)
    web-api POST body object always null
    linq to js 用法
    c#导出数据到csv文本文档中,数据前面的0不见了解决方法
    金蝶BOS元模型分析
    DotNet 资源大全中文版
    JavaScript中的类方法、对象方法、原型方法
    解决System.Data.SqlClient.SqlException (0x80131904): Timeout 时间已到的问题
    在需要隐藏navigationController控制器
    升级macOS Sierra系统 导致错误 app: resource fork, Finder information, or similar detritus not allowed
  • 原文地址:https://www.cnblogs.com/zhidong123/p/4193934.html
Copyright © 2020-2023  润新知