字符串长度计算、截取、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

原文地址:https://www.cnblogs.com/zhidong123/p/4193934.html