前端JS金额格式化

金额格式化为:千分位,小数位,非数字
function fmoney(price, n){
	if(isNaN(parseFloat(price))){
		return "";
	}
   n = n > 0 && n <= 20 ? n : 2;   
   price = parseFloat((price + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";   
   var l = price.split(".")[0].split("").reverse(),   
   r = price.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;   
} 
//把数字人民币转化成大写 
function toUpperCase(Num) {
	 for(i=Num.length-1;i>=0;i--)
	{
	Num = Num.replace(",","");//替换tomoney()中的“,”
	Num = Num.replace(" ","");//替换tomoney()中的空格
	}
	Num = Num.replace("¥","");//替换掉可能出现的¥字符
	if(isNaN(Num)) { //验证输入的字符是否为数字
	alert("请检查小写金额是否正确");
	return "";
	}
	//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
	part = String(Num).split(".");
	newchar = ""; 
	//小数点前进行转化
	for(i=part[0].length-1;i>=0;i--){
	if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
	tmpnewchar = "";
	perchar = part[0].charAt(i);
	switch(perchar){
	case "0": tmpnewchar="零" + tmpnewchar ;break;
	case "1": tmpnewchar="壹" + tmpnewchar ;break;
	case "2": tmpnewchar="贰" + tmpnewchar ;break;
	
	case "3": tmpnewchar="叁" + tmpnewchar ;break;
	case "4": tmpnewchar="肆" + tmpnewchar ;break;
	case "5": tmpnewchar="伍" + tmpnewchar ;break;
	case "6": tmpnewchar="陆" + tmpnewchar ;break;
	case "7": tmpnewchar="柒" + tmpnewchar ;break;
	case "8": tmpnewchar="捌" + tmpnewchar ;break;
	case "9": tmpnewchar="玖" + tmpnewchar ;break;
	}
	switch(part[0].length-i-1){
	case 0: tmpnewchar = tmpnewchar +"圆" ;break;
	case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
	case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
	case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
	case 4: tmpnewchar= tmpnewchar +"万" ;break;
	case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
	case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
	case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
	case 8: tmpnewchar= tmpnewchar +"亿" ;break;
	case 9: tmpnewchar= tmpnewchar +"拾" ;break;
	}
	newchar = tmpnewchar + newchar;
	}
	//小数点之后进行转化
	   if(Num.indexOf(".")!=-1){
	   if(part[1].length > 4) {
	    alert("小数点之后只能保留四位,系统将自动截段");
	    part[1] = part[1].substr(0,4)
	    }
	   for(i=0;i<part[1].length;i++){
	    tmpnewchar = ""
	    perchar = part[1].charAt(i)
	    switch(perchar){
	    case "0": tmpnewchar="零" + tmpnewchar ;break;
	    case "1": tmpnewchar="壹" + tmpnewchar ;break;
	    case "2": tmpnewchar="贰" + tmpnewchar ;break;
	    case "3": tmpnewchar="叁" + tmpnewchar ;break;
	    case "4": tmpnewchar="肆" + tmpnewchar ;break;
			case "5": tmpnewchar="伍" + tmpnewchar ;break;
	    case "6": tmpnewchar="陆" + tmpnewchar ;break;
	    case "7": tmpnewchar="柒" + tmpnewchar ;break;
	    case "8": tmpnewchar="捌" + tmpnewchar ;break;
	    case "9": tmpnewchar="玖" + tmpnewchar ;break;
	    }
	    if(i==0)tmpnewchar =tmpnewchar + "角";
	    if(i==1)tmpnewchar = tmpnewchar + "分";
	    if(i==2)tmpnewchar = tmpnewchar + "毫";
	    if(i==3)tmpnewchar = tmpnewchar + "厘";
	    newchar = newchar + tmpnewchar;
	   }
	   }
	   //替换所有无用汉字
	   while(newchar.search("零零") != -1)
	   newchar = newchar.replace("零零", "零");
	   newchar = newchar.replace("零亿", "亿");
	   newchar = newchar.replace("亿万", "亿");
	   newchar = newchar.replace("零万", "万");
	   newchar = newchar.replace("零圆", "圆");
	   newchar = newchar.replace("零角", "");
	   newchar = newchar.replace("零分", ""); 
	   newchar = newchar.replace("零毫", ""); 
	   newchar = newchar.replace("零厘", ""); 
	if (newchar.charAt(newchar.length-1) == "圆" || newchar.charAt(newchar.length-1) == "角")
	newchar = newchar+"整";
	return newchar;
}

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值