js金额格式化

来源:互联网 发布:区域软件 编辑:程序博客网 时间:2024/04/30 02:38
   /**      * 将数值四舍五入(保留2位小数)后格式化成金额形式      *      * @param num 数值(Number或者String)      * @return 金额格式的字符串,如'1,234,567.45'      * @type String      */      function formatCurrency(num) {          num = num.toString().replace(/\$|\,/g,'');          if(isNaN(num))          num = "0";          sign = (num == (num = Math.abs(num)));          num = Math.floor(num*100+0.50000000001);          cents = num%100;          num = Math.floor(num/100).toString();          if(cents<10)          cents = "0" + cents;          for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)          num = num.substring(0,num.length-(4*i+3))+','+          num.substring(num.length-(4*i+3));          return (((sign)?'':'-') + num + '.' + cents);      }             /**      * 将数值四舍五入(保留1位小数)后格式化成金额形式      *      * @param num 数值(Number或者String)      * @return 金额格式的字符串,如'1,234,567.4'      * @type String      */      function formatCurrencyTenThou(num) {          num = num.toString().replace(/\$|\,/g,'');          if(isNaN(num))          num = "0";          sign = (num == (num = Math.abs(num)));          num = Math.floor(num*10+0.50000000001);          cents = num%10;          num = Math.floor(num/10).toString();          for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)          num = num.substring(0,num.length-(4*i+3))+','+          num.substring(num.length-(4*i+3));          return (((sign)?'':'-') + num + '.' + cents);      }            // 添加金额格式化      jQuery.extend({          formatFloat:function(src, pos){              var num = parseFloat(src).toFixed(pos);              num = num.toString().replace(/\$|\,/g,'');              if(isNaN(num)) num = "0";              sign = (num == (num = Math.abs(num)));              num = Math.floor(num*100+0.50000000001);              cents = num%100;              num = Math.floor(num/100).toString();              if(cents<10) cents = "0" + cents;              for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)              num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));              return (((sign)?'':'-') + num + '.' + cents);          }      });   /**   *JS 数字,金额 用逗号 隔开(数字格式化)   *格式化html js function   *例如:    *12345格式化为12,345.00    *12345.6格式化为12,345.60    *12345.67格式化为 12,345.67    *只留两位小数。    *回来后写了个格式化函数。可以控制小数位数,自动四舍五入。 代码如下:    */    function fmoney(s, n) {          n = n > 0 && n <= 20 ? n : 2;          s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";          var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];          t = "";          for (i = 0; i < l.length; i++) {              t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");          }          return t.split("").reverse().join("") + "." + r;      }      调用:fmoney("12345.675910", 3),返回12,345.676     //还原函数:     function rmoney(s) {          return parseFloat(s.replace(/[^\d\.-]/g, ""));      }      /*      * formatMoney(s,type)      * 功能:金额按千位逗号分割      * 参数:s,需要格式化的金额数值.      * 参数:type,判断格式化后的金额是否需要小数位.      * 返回:返回格式化后的数值字符串.      */      function formatMoney(s, type) {          if (/[^0-9\.]/.test(s))              return "0";          if (s == null || s == "")              return "0";          s = s.toString().replace(/^(\d*)$/, "$1.");          s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");          s = s.replace(".", ",");          var re = /(\d)(\d{3},)/;          while (re.test(s))              s = s.replace(re, "$1,$2");          s = s.replace(/,(\d\d)$/, ".$1");          if (type == 0) {// 不带小数位(默认是有小数位)              var a = s.split(".");              if (a[1] == "00") {                  s = a[0];              }          }          return s;      }      /*      * 通用DateAdd(interval,number,date) 功能:实现javascript的日期相加功能.      * 参数:interval,字符串表达式,表示要添加的时间间隔. 参数:number,数值表达式,表示要添加的时间间隔的个数. 参数:date,时间对象.      * 返回:新的时间对象. var now = new Date(); var newDate = DateAdd("day",5,now);      * author:devinhua(从○开始) update:2010-5-5 20:35      */      function DateAdd(interval, number, date) {          if (date == null)              return "";          switch (interval) {          case "day":              date = new Date(date);              date = date.valueOf();              date += number * 24 * 60 * 60 * 1000;              date = new Date(date);              return date;              break;          default:              return "";              break;          }      }  
/** *禁用文本框粘贴 */script type="text/javascript">//not IE is requiredfunction fncKeyStop(evt){    if(!window.event){        var keycode = evt.keyCode;         var key = String.fromCharCode(keycode).toLowerCase();        if(evt.ctrlKey && key == "v"){          evt.preventDefault();           evt.stopPropagation();        }    }}</script><input type="text" onkeydown="fncKeyStop(event)" onpaste="return false" oncontextmenu = "return false;" />


0 0
原创粉丝点击