欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js常用格式化

程序员文章站 2022-05-12 16:27:03
...
Date.prototype.format = function(format) //author: meizz
{ 
  var o = {
    "M+" : this.getMonth()+1, //month
    "d+" : this.getDate(),    //day
    "h+" : this.getHours(),   //hour
    "m+" : this.getMinutes(), //minute
    "s+" : this.getSeconds(), //second
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
    "S" : this.getMilliseconds() //millisecond
  }
  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
    (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,
      RegExp.$1.length==1 ? o[k] :
        ("00"+ o[k]).substr((""+ o[k]).length));
  return format;
} 
//银行卡号格式化
var cardNO = function(value,obj,row){
return value.replace(/(?=(?:\d{4})+(?!\d))/g,' ');
}
//格式化金额
var fmoney = function(s,obj,row){
   // s = s/100;
   n = 2;  
   s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
   var l = s.split(".")[0].split("").reverse(),  
   r = s.split(".")[1];  
   t = "";  
   for(var i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return "¥"+t.split("").reverse().join("") + "." + r;  
}  
//格式化金额
var money = function(s,obj,row){
   // s = s/100;
   n = 2;  
   s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
   var l = s.split(".")[0].split("").reverse(),  
   r = s.split(".")[1];  
   t = "";  
   for(var i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   return t.split("").reverse().join("") + "." + r;  
}
//格式化金额
var jmoney = function(s,obj,row){ 
   s = s/100;
   n = 2;  
   s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
   var l = s.split(".")[0].split("").reverse(),  
   r = s.split(".")[1];  
   t = "";  
   for(var i = 0; i < l.length; i ++ )  
   {  
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
   }  
   var forma = t.split("").reverse().join("") + "." + r;
   var formb;
   if(forma.substring(0,1)=="-"){
  if(forma.substring(1,2)==","){
  formb = forma.substring(2, forma.length);
  return "-"+formb;
  }else{
  return forma; 
  }
  
   }else{
  return forma;  
   } 
}
//格式化金额
var fmoney_1 = function (cellvalue,p,row){
    if(cellvalue != null && cellvalue != ""){
      return fmoney(cellvalue,p,row);
    }else{
    return "";
    }
 }
 
var to_date_hms = function (s,obj,row){
if(s==null){
return "";
}
return new Date(s).format("yyyy-MM-dd hh:mm:ss");
}
var to_date_hm = function (s,obj,row){
if(s==null){
return "";
}
return new Date(s).format("yyyy-MM-dd hh:mm");
}
var string_to_date = function(s,sp){
if(s==null){
return "";
}
if(sp==null){
sp = "-";
}
var d= s.split(sp); 
return new Date(d[0], d[1]-1, d[2]); 
}
var to_month = function (s,obj,row){
if(s==null){
return "";
}
return new Date(s).format("yyyy-MM");
}
var to_hms = function (s,obj,row){
if(s==null){
return "";
}
return new Date(s).format("hh:mm:ss");
}
var to_format = function (s,obj,row){
if(s==null){
return "";
}
return s;
}
var to_date = function (s,obj,row){
if(s==null){
return "";
}
return new Date(s).format("yyyy-MM-dd");
}
function digit_uppercase(n) {
    var fraction = ['角', '分'];
    var digit = [
        '零', '壹', '贰', '叁', '肆',
        '伍', '陆', '柒', '捌', '玖'
    ];
    var unit = [
        ['元', '万', '亿'],
        ['', '拾', '佰', '仟']
    ];
    var head = n < 0? '负': '';
    n = Math.abs(n);
    var s = '';
    for (var i = 0; i < fraction.length; i++) {
        s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
    }
    s = s || '整';
    n = Math.floor(n);
    for (var i = 0; i < unit[0].length && n > 0; i++) {
        var p = '';
        for (var j = 0; j < unit[1].length && n > 0; j++) {
            p = digit[n % 10] + unit[1][j] + p;
            n = Math.floor(n / 10);
        }
        s = p.replace(/(零.)*零$/, '')
             .replace(/^$/, '零')
          + unit[0][i] + s;
    }
    return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');
};
/**
 * 卡号格式化
 */
var cardFormat = function(cardNo){
if(!cardNo) {
return '';
}
var no = [], start = 0, len = cardNo.length-4;
while(start <= len) {
no.push(cardNo.substring(start, start+4));
no.push('&nbsp;');
start += 4;
}
return no.join('');
};
var checkIdCard = function(idcard){
var area = {11 : "北京", 12 : "天津", 13 : "河北", 14 : "山西", 15 : "内蒙古", 21 : "辽宁", 22 : "吉林",  
           23 : "黑龙江", 31 : "上海", 32 : "江苏", 33 : "浙江", 34 : "安徽", 35 : "福建", 36 : "江西",   
           37 : "山东", 41 : "河南", 42 : "湖北", 43 : "湖南", 44 : "广东", 45 : "广西", 46 : "海南",  
           50 : "重庆", 51 : "四川", 52 : "贵州", 53 : "云南", 54 : "*", 61 : "陕西", 62 : "甘肃",  
           63 : "青海", 64 : "宁夏", 65 : "*", 71 : "*", 81 : "香港", 82 : "澳门", 91 : "国外" };
var result = new Array("0", "身份证长度必须为15或18位!", "身份证出生日期超出范围或含有非法字符!",  
   "身份证校验位错误!", "身份证地区非法!");  
var  Y, JYM;  
var S, M;  
var idcard_array = new Array();  
idcard_array = idcard.split("");  
// 地区检验  
if (area[parseInt(idcard.substr(0, 2))] == null)  
return result[4];  
// 身份号码位数及格式检验  
switch (idcard.length) {  
case 15 :  
   if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0  
           || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900)% 4 == 0)) {  
       ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;  
       // 测试出生日期的合法性  
   } else {  
       ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;  
       // 测试出生日期的合法性  
   }  
   if (ereg.test(idcard))  
       return result[0];  
   else {  
       return result[2];  
   }  
   break;  
case 18 :  
   // 18位身份号码检测  
   // 出生日期的合法性检查  
   // 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))  
   // 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))  
   if (parseInt(idcard.substr(6, 4)) % 4 == 0  
           || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4))% 4 == 0)) {  
       ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;// 闰年出生日期的合法性正则表达式  
   } else {  
       ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;// 平年出生日期的合法性正则表达式  
   }  
   if (ereg.test(idcard)) {// 测试出生日期的合法性  
   // 计算校验位  
       S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10]))* 7  
           + (parseInt(idcard_array[1]) + parseInt(idcard_array[11]))* 9  
           + (parseInt(idcard_array[2]) + parseInt(idcard_array[12]))* 10  
           + (parseInt(idcard_array[3]) + parseInt(idcard_array[13]))* 5  
           + (parseInt(idcard_array[4]) + parseInt(idcard_array[14]))* 8  
           + (parseInt(idcard_array[5]) + parseInt(idcard_array[15]))* 4  
           + (parseInt(idcard_array[6]) + parseInt(idcard_array[16]))* 2  
           + parseInt(idcard_array[7]) * 1  
           + parseInt(idcard_array[8]) * 6  
           + parseInt(idcard_array[9]) * 3;  
       Y = S % 11;  
       M = "F";  
       JYM = "10X98765432";  
       M = JYM.substr(Y, 1);// 判断校验位  
       if (M == idcard_array[17].toUpperCase())  
           return result[0]; // 检测ID的校验位  
       else  
           return result[3];  
   } else  
       return result[2];  
   break;  
default :  
   return result[1];  
   break;  
}  
};