js转换金额,大小写,添加千位符

来源:互联网 发布:最后一个勇敢的人知乎 编辑:程序博客网 时间:2024/06/05 17:24

添加千位符:

1.<td style="width: 100;height:30;"><font

style=" width:100;  font-size:14; color:#000000;"
>信托规模:</font></td>
<td style="width: 280"><input property="projectscale1"
id="projectscale1" size="23" onblur="scaleonblur()" />&nbsp;万元<h:hidden property="projectscale"

id="projectscale" /></td>

2.//光标离开转换金额
function scaleonblur(){
var value=$id("projectscale1").value.replace(/,/g,"");
if(isNaN(value)||value.trim()==""){
$id("projectscale").value="0";
$id("projectscale1").value="0";
alert("请输入正确的金额...");
return false;
}
$id("projectscale").value=value;
$id("projectscale1").value=numberToMoney(value);
}

3.//金额转换
function numberToMoney(num){
if(num==null)return "";
num = num.toString();
var cents = "";
var index = num.indexOf(".");
if(index>0){
cents = num.substring(num.indexOf("."),num.length);
}
num=Math.floor(num).toString();
if(isNaN(num)){
num = "0";
}
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++){
num = num.substring(0,String(num).length-(4*i+3))+',' + num.substring(num.length-(4*i+3));
}
return num+cents;
}

转换大写:

function convertCurrency(currencyDigits) {
 var MAXIMUM_NUMBER = 99999999999.99;
 var CN_ZERO = "零";
 var CN_ONE = "壹";
 var CN_TWO = "贰";
 var CN_THREE = "叁";
 var CN_FOUR = "肆";
 var CN_FIVE = "伍";
 var CN_SIX = "陆";
 var CN_SEVEN = "柒";
 var CN_EIGHT = "捌";
 var CN_NINE = "玖";
 var CN_TEN = "拾";
 var CN_HUNDRED = "佰";
 var CN_THOUSAND = "仟";
 var CN_TEN_THOUSAND = "万";
 var CN_HUNDRED_MILLION = "亿";
 var CN_SYMBOL = "人民币";
 var CN_DOLLAR = "元";
 var CN_TEN_CENT = "角";
 var CN_CENT = "分";
 var CN_INTEGER = "整";
 var integral; 
 var decimal; 
 var outputCharacters; 
 var parts;
 var digits, radices, bigRadices, decimals;
 var zeroCount;
 var i, p, d;
 var quotient, modulus;
 currencyDigits = currencyDigits.toString();
 if (currencyDigits == "") {
  return "提示:还没有输入数字!";
 }
 if (currencyDigits.match(/[^,.\d]/) != null) {
  return "提示:请输入有效数字!";
 }
 if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
  return "提示:请输入有效格式数字!";
 }
 currencyDigits = currencyDigits.replace(/,/g, ""); 
 currencyDigits = currencyDigits.replace(/^0+/, ""); 
 if (Number(currencyDigits) > MAXIMUM_NUMBER) {
  return "提示:您输入的数字太大了!";
 }
 parts = currencyDigits.split(".");
 if (parts.length > 1) {
  integral = parts[0];
  decimal = parts[1];
  decimal = decimal.substr(0, 2);
 }
 else {
  integral = parts[0];
  decimal = "";
 }
 digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
 radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
 bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
 decimals = new Array(CN_TEN_CENT, CN_CENT);
 outputCharacters = "";
 if (Number(integral) > 0) {
  zeroCount = 0;
  for (i = 0; i < integral.length; i++) {
   p = integral.length - i - 1;
   d = integral.substr(i, 1);
   quotient = p / 4;
   modulus = p % 4;
   if (d == "0") {
    zeroCount++;
   }
   else {
    if (zeroCount > 0)
    {
     outputCharacters += digits[0];
    }
    zeroCount = 0;
    outputCharacters += digits[Number(d)] + radices[modulus];
   }
   if (modulus == 0 && zeroCount < 4) {
    outputCharacters += bigRadices[quotient];
   }
  }
  outputCharacters += CN_DOLLAR;
 }
 if (decimal != "") {
  for (i = 0; i < decimal.length; i++) {
   d = decimal.substr(i, 1);
   if (d != "0") {
    outputCharacters += digits[Number(d)] + decimals[i];
   }else{   
if(decimal.substr(1,2) != "" && decimal.substr(1,2)!=0 && decimal.substr(1,2)!=null ){
    outputCharacters += CN_ZERO;
    }  
   }
  }
 }
 if (outputCharacters == "") {
  outputCharacters = CN_ZERO + CN_DOLLAR;
 }
if (decimal.substr(1,2) == "" || decimal.substr(1,2) == "0" || decimal.substr(1,2) == null) {
  outputCharacters += CN_INTEGER;
 }
 outputCharacters =outputCharacters;
 return outputCharacters;
}