jQuery数字转化为人民币大写

<html>

<meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />

<head>

<script type="text/javascript" src="../jquery/jquery-2.1.1.js"></script>

<script type="text/javascript">

$(document).ready(function(){

//文本框失去焦点后

$('.gongzi').blur(function(){  // 为表单元素添加失去焦点事件

var $parent = $(this).parent();

$parent.siblings(".tishi").find(".formtips").remove(); //去掉先前的提醒

//只能输入数字和小数点后两位数

if($(this).is(".gongzi")){

if(!/^[0-9]+(.[0-9]{1,2})?$/.test(this.value)){

    var errorMsg = '只能输入整数和带两位小数的数.';

$parent.siblings(".tishi").append('<font color="red" class="formtips onError" size="-1">'+errorMsg+'</font>');

}

}

 

})

//快捷键enter

$(".gongzi").keydown(function(e){

if(e.keyCode==13){

  $('.gongzi').trigger('blur');

var numError = $('.onError').length;

if(numError){

return false;

var sum=0;

for(var i=0;i<$(".gongzi").length;i++){

sum+=parseFloat($(".gongzi").eq(i).val());

}

var t_sum=sum.toString().split(".");

if(t_sum.length>1){//带有小数

var tt_sum=t_sum[0]+"."+t_sum[1].split("0")[0];//确保不大于两位小数

var l_sum=zhuanhua(tt_sum);//转化

$(".xiaoxie").replaceWith("<td colspan='2' class='xiaoxie'><a>"+tt_sum+"元</a></td>");

$(".daxie").replaceWith("<td colspan='2' class='daxie'> <a>"+l_sum+"</a></td>");

}else{//没有小数

var tt_sum=t_sum[0];

var l_sum=zhuanhua(tt_sum);//转化

$(".xiaoxie").replaceWith("<td colspan='2' class='xiaoxie'><a>"+tt_sum+"元</a></td>");

$(".daxie").replaceWith("<td colspan='2' class='daxie'> <a>"+l_sum+"</a></td>");

}

}

});

//重置

$('#res').click(function(){

$(".gongzi").val(""); 

$(".xiaoxie").replaceWith("<td class='xiaoxie'><a></a></td>");

$(".daxie").replaceWith("<td colspan='2' class='daxie'> <a ></a></td>");

$(".tishi").find(".formtips").remove(); //去掉先前的提醒

});

 

//数字转化

function zhuanhua(num){

var sum=num.toString();

var tmp = sum.split(".");

 

var String1 = "零壹贰叁肆伍陆柒捌玖";

var String2 = "亿万仟佰拾圆角分";

 

//判断是否有小数

if(tmp.length==2){

//带有小数

var zhengshu=tmp[0];

var zs=0;

var xiaoshu=tmp[1];

var xs=0;

for(var i=zhengshu.length-1,j=1;i>=0;i--,j++){

if(zhengshu[i]==0&&i==zhengshu.length-1){

zs+=String2[6-j]+0;

}else if(zhengshu[i]==0&&i<zhengshu.length-1&&j<6){

if(j==5){

zs+=String2[6-j]+0;

}else{

zs+=String1[zhengshu[i]]+0;

}

 

}else if(j<6){

 

zs+=String1[zhengshu[i]]+String2[6-j]+0;

 

 

}else if(j<9){

if(zhengshu[i]==0){

zs+=String1[zhengshu[i]]+0;

}else{

zs+=String1[zhengshu[i]]+String2[6-j+4]+0;

}

 

}else if(j<12){

if(j==9&&zhengshu[i]==0&&i<zhengshu.length-1){

zs+=String2[6-j+3]+0;

}else{

zs+=String1[zhengshu[i]]+String2[6-j+8]+0;

}

}

}

for(var i=xiaoshu.length-1,j=1;i>=0;i--,j++){

xs+=String1[xiaoshu[i]]+String2[8-j]+0;

}

 

var r_zs=zs.split("0");

var r_xs=xs.split("0");

var r_s=0;

for(var i=r_zs.length-1;i>=0;i--){

r_s+=r_zs[i];

}

for(var i=r_xs.length-1;i>=0;i--){

r_s+=r_xs[i];

}

var l_sum=r_s.split("0")[1];

return last_no(l_sum);

 

}else{

//不带小数

var zhengshu=tmp[0];

var zs=0;

for(var i=zhengshu.length-1,j=1;i>=0;i--,j++){

if(zhengshu[i]==0&&i==zhengshu.length-1){

zs+=String2[6-j]+0;

}else if(zhengshu[i]==0&&i<zhengshu.length-1&&j<6){

if(j==5){

zs+=String2[6-j]+0;

}else{

zs+=String1[zhengshu[i]]+0;

}

 

}else if(j<6){

 

zs+=String1[zhengshu[i]]+String2[6-j]+0;

 

 

}else if(j<9){

if(zhengshu[i]==0){

zs+=String1[zhengshu[i]]+0;

}else{

zs+=String1[zhengshu[i]]+String2[6-j+4]+0;

}

 

}else if(j<12){

if(j==9&&zhengshu[i]==0&&i<zhengshu.length-1){

zs+=String2[6-j+3]+0;

}else{

zs+=String1[zhengshu[i]]+String2[6-j+8]+0;

}

}

}

var r_zs=zs.split("0");

var r_s=0;

for(var i=r_zs.length-1;i>=0;i--){

r_s+=r_zs[i];

}

var l_sum=r_s.split("0")[1];

l_sum+="整";

return last_no(l_sum);

}

 

}

 

//最后规范,去掉多余的零

function last_no(l_sum){

var num1=0;

 

for(var i=0;i<l_sum.length-1;i++){

if(l_sum[i]==l_sum[i+1]&&l_sum[i]=='零'){

}else{

num1+=l_sum[i];

}

}

num1+=l_sum[l_sum.length-1];

 

var num2=num1.split("0")[1];

var num3=0;

for(var i=0;i<num2.length-1;i++){

if(num2[i]=="零"&&num2[i+1]=="亿"){

}else if(num2[i]=="零"&&num2[i+1]=="万"){

}else if(num2[i]=="零"&&num2[i+1]=="圆"){

}else{

num3+=num2[i];

}

 

}

num3+=num2[num2.length-1];

var ll_sum=num3.split("0")[1];

return ll_sum;

 

}

});

</script>

</head>

 

<body>

<div>

<table id="usertable"  border="0" align="left" cellpadding="5">

<th style="width:100px;">姓名</td>

<th style="width:100px;">电话</td>

<th align='left' style="width:80px;">工资</td>

<th style="width:200px;"></td>

<tr align="center">

<td>Tom</td>

<td>18051226736</td>

<td align='left' ><input style="width:80px;"  type="text" class="gongzi" id="gz1"/></td>

<td class="tishi"></td>

</tr>

<tr align="center">

<td>Jerry</td>

<td>15218877634</td>

<td align='left' ><input  style="width:80px;" type="text" class="gongzi" id="gz2"/></td>

<td class="tishi"></td>

</tr>

<tr align="center">

<td>Zero</td>

<td>13627836726</td>

<td align='left' ><input style="width:80px;"  type="text" class="gongzi" id="gz3"/></td>

<td class="tishi"></td>

</tr>

<tr align="center">

<td ><a class="heji" id="heji"><b>合计:</b></a></td>

<td colspan="2" class="xiaoxie"> <a ></a></td>

</tr>

<tr align="center">

<td  ><a><b>大写:</b></a></td>

<td colspan="2" class="daxie"> <a ></a></td>

</tr>

<tr align="center">

<td bgcolor="#E0E0E0"  id="res"><font style="width:80px;"   ><b>重置</b></font></td>

</tr>

</table>

</div>

</body>

 

</html> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery 中也没有内置的将数字转换为大写数字的方法,不过我们可以使用 JavaScript 来实现,然后在 jQuery 中使用该函数进行处理。以下是一个将数字转换为大写数字的示例函数,可以在 jQuery 中使用: ```javascript $.fn.numberToChinese = function(num) { const digitUnits = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"]; const digitLevels = ["", "十", "百", "千", "万", "亿"]; // 数字位,从低到高 let chineseNum = ""; let level = 0; // 当前数字位 do { let digit = num % 10; // 取出最低位数字 chineseNum = digitUnits[digit] + digitLevels[level] + chineseNum; // 将数字转换为大写数字,并加上数字位 level++; num = Math.floor(num / 10); // 去掉最低位数字 } while (num > 0); return chineseNum; } ``` 上面的函数与前面的 JavaScript 版本基本相同,只是将其作为 jQuery 插件进行了封装。我们可以将其添加到 jQuery 的原型对象上,这样就可以在任何 jQuery 对象上使用该函数,例如: ```javascript let num = 12345; let chineseNum = $.fn.numberToChinese(num); // "一万二千三百四十五" $("#result").text(chineseNum); // 将结果显示在页面上 ``` 在上面的代码中,我们首先定义了一个数字 `num`,然后使用 `$.fn.numberToChinese(num)` 将其转换为大写数字,最后将结果显示在页面上。 需要注意的是,我们在 jQuery 中使用的是 `$.fn.numberToChinese`,而不是 `numberToChinese`。这是因为在 jQuery 中,我们将函数作为插件进行封装时,需要将其添加到 jQuery 的原型对象上,这样才能在 jQuery 对象上使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值