金额分割

/**
* @author tc
* 引入jquery.js
* 引入money.js charset="utf-8" -- 注意引入时指定编码,因为ie6不能自动识别
* <input class="money"/> 默认使用万元格式化,整数位数8,小数位数6
* <input class="money" leftLen="2" rightLen="2"/>整数位数2,小数位数2
* 如果使用struts标签,后面两个属性不能有 class要改成styleClass
* 提交数据还原成数字使用rvalue方法
* */
//格式话金额
function formatValue(s, n)//将数字转换成逗号分隔的样式,保留两位小数s:value,n:小数位数
{
if(isNaN(s))s=0;
n = n > 0 && n <= 20 ? n : 6;
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).replace("-,","-");
}
//还原金额
function rvalue(s)
{
return parseFloat(s.replace(/[^\d\.-]/g, ""));
}
function clearNoNum(event,obj)
{
//响应鼠标事件,允许左右方向键移动
event = window.event||event;
if(event.keyCode == 37 | event.keyCode == 39){
return;
}
//先把非数字的都替换掉,除了数字和.
if(obj.value.indexOf('-')==0)
obj.value = "-"+obj.value.replace(/[^\d.]/g,"");
else
obj.value =obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
jQuery(function (){
autoMoney();
})

function fmoney(obj)
{
var leftLen=obj.attr("leftLen");
var rightLen=obj.attr("rightLen");
if(leftLen==undefined ||isNaN(leftLen)){leftLen=8;}
if(rightLen==undefined ||isNaN(rightLen)){rightLen=6;}
if(obj.val()=="" || obj.val()==undefined)obj.val("0");
var obj_value=rvalue(obj.val()).toFixed(rightLen);
var index=obj_value.indexOf('.');
if(index==-1)
{
var allLen=obj_value.length;
if(allLen>leftLen)
{
//obj_value="0";
alert("金额过大");
}
}else
{
var _ary=obj_value.split('.');
var _len=_ary[0].length;
var _ren=_ary[1].length ;
if(_len>leftLen)
{
//_ary[0]="0";
alert("金额过大");
}
if(_ren>rightLen)
_ary[1]=_ary[1].substring(0,_ren);
obj_value=parseFloat(_ary[0]+"."+_ary[1]);
}
return formatValue(obj_value,rightLen);
}
function autoMoney()
{
jQuery(".money").each(function (){
jQuery(this).css("text-align","right");
jQuery(this).focus(function (){this.value=rvalue(this.value)});
jQuery(this).blur(function (){this.value=fmoney(jQuery(this))});
jQuery(this).keyup(function (){clearNoNum(event,this)});
this.value=fmoney(jQuery(this));
})
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值