金额与数字转化常用实用几个JS方法

来源:互联网 发布:mac 蓝牙 编辑:程序博客网 时间:2024/05/17 08:03
 
  1. //在引用页面,可以采用document.forms[0].field1.value.trim()引用去空格  
  2. String.prototype.trim = function(){  
  3.     return this.replace(/(^/s*)|(/s*$)/g, "");  
  4. }  
  5.   
  6.   
  7. //将1,234,567.00转换为1234567.00  
  8. function moneyToNumFiled(obj) {  
  9.     var num=obj.value.trim();  
  10.     var ss=num.toString();  
  11.     if(ss.length==0){  
  12.       return "";  
  13.     }     
  14.     num=new Number(ss.replace(/,/g, ""));  
  15.     if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){  
  16.       alert("必须是数字型,切小数位最多保留两位");   
  17.       obj.value="";  
  18.       obj.focus();  
  19.       return ;  
  20.     }  
  21.     obj.value=num;  
  22.          
  23. }  
  24.   
  25.   
  26. //将1,234,567.00转换为1234567.00  
  27. function moneyToNumValue(val) {  
  28.     var num=val.trim();  
  29.     var ss=num.toString();  
  30.     if(ss.length==0){  
  31.       return "0";  
  32.     }     
  33.     return ss.replace(/,/g, "");  
  34.       
  35. }  
  36.   
  37. //用于页面控制  
  38. //将1234567.00转换为1,234,567.00  
  39. function numToMoneyField(obj) {  
  40.      
  41.     var ss=obj.value.toString().trim();  
  42.     if(ss.length==0){  
  43.       return "";  
  44.     }     
  45.     var num=new Number(ss.replace(/,/g, ""));  
  46.     if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){  
  47.           
  48.       alert("必须是数字型,切小数位最多保留两位");   
  49.       obj.value="";  
  50.       obj.focus();  
  51.       return;  
  52.     }  
  53.       
  54.     if(num<0){  
  55.         obj.value = '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);  
  56.     }else{  
  57.         obj.value = outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);  
  58.     }  
  59. }  
  60.   
  61. //将1234567.00转换为1,234,567.00  
  62. function numToMoneyValue(val) {  
  63.      
  64.     var ss=val.toString().trim();  
  65.     if(ss.length==0){  
  66.       return "";  
  67.     }     
  68.     var num=new Number(ss.replace(/,/g, ""));  
  69.     if(!/^(/+|-)?/d+(/.[0-9]{1,2})?$/.test(num)){  
  70.       alert("必须是数字型,切小数位最多保留两位");       
  71.       return "";  
  72.     }  
  73.       
  74.     if(num<0){  
  75.         return '-'+outputDollars(Math.floor(Math.abs(num)-0) + '') + outputCents(Math.abs(num) - 0);  
  76.     }else{  
  77.         return outputDollars(Math.floor(num-0) + '') + outputCents(num - 0);  
  78.     }  
  79. }  
  80.   
  81. function Chinese(num){   //如输入123.45可得到 壹百贰拾叁元肆角伍分  
  82.     var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");  
  83.     var BB = new Array("","拾","百","千","万","亿","","");  
  84.     var CC = new Array("角","分","");  
  85.       
  86.     var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";  
  87.   
  88.     for(var i=a[0].length-1; i>=0; i--){  
  89.         switch(k){  
  90.             case 0 : re = BB[7] + re; break;  
  91.             case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0]))  
  92.                      re = BB[4] + re; break;  
  93.             case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;  
  94.         }  
  95.         if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;  
  96.         if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;  
  97.     }  
  98.     if(re.trim().length>0){  
  99.       re+="元";   
  100.     }  
  101.       
  102.     if(a.length>1){ //加上小数部分(如果有小数部分)  
  103.         re += BB[6];  
  104.         for(var i=0; i1) break;  
  105.           re += AA[a[1].charAt(i)] + CC[i];  
  106.         }  
  107.     }  
  108.   
  109.     return re;  
  110. }  
  111. //格式化输入数字,并保留指定位小数  
  112. //amount为原数字,_pow_为需要保留小数位数  
  113. function powAmount(amount,_pow_) {  
  114.      var amount_bak=amount;  
  115.      var base=10;  
  116.      if(isNaN(amount)){  
  117.         alert(amount+'必须为数字');  
  118.         return;  
  119.      }  
  120.      if(isNaN(_pow_)){  
  121.         alert(_pow_+'必须为数字');  
  122.         return;  
  123.      }  
  124.    amount = Math.round( ( amount - Math.floor(amount) ) *Math.pow(base,_pow_));  
  125.    amount=amount<10 ? '.0' + amount : '.' + amount  
  126.    amount=Math.floor(amount_bak)+amount;  
  127.    return amount;  
  128. }<pre></pre>  
  129. <pre></pre>  
  130. <p>本文出自:<strong><a href="http://www.fenglibin.com">冯立彬的博客</a></strong></p>  
  131. <p><br>  
  132. </p>  
  133. <p><br>  
  134. </p>
0 0
原创粉丝点击