您的位置:首页 > Web前端 > JavaScript

javascript 将数字金额转换成繁体

2010-01-04 10:59 190 查看
代码//将iValue转换成繁体,然后返回
function nstConvert(iValue)
{
//if(iValue==stmp) return;//如果等于上次输入则返回
var ms = iValue.replace(/[^\d\.]/g,"").replace(/(\.\d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0");
//replace(/[^\d\.]/g,"")去掉输入当中不是数字和.的字符
//replace(/(\.\d{2}).+$/,"$1")
//匹配从字符开始的第一个.后面的所有字符,由于没有使用g标记,
//所以只匹配开始第一次 然后用小数点和后两位进行替换以确定数值最后的格式正确 高.
//replace(/^0+([1-9])/,"$1") 匹配以多个0开头的数值替换为去掉0后的数值做为数字的第一位 也是匹配开始的一次.
//replace(/^0+$/,"0") 匹配以0开始和结束的多个0为一个0 也就是0000000 输入->转换成一个0
//以下确定输入的为过滤后的合法数字
//alert(ms);
var txt = ms.split(".");
//alert(txt[0]);
//如果ms值不小数点存在则txt[0]=小数点前的值否则等于ms
//regexp:/\d{4}(,|$)/ 匹配四位数字和,的集合或者四位数字和字符结尾的集合
while(/\d{4}(,|$)/.test(txt[0]))//如果为txt[0]=4123
txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");
//txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2")是将txt[0]进行替换后再赋给它
//regexp:/(\d)(\d{3}(,|$))/ 将四个数字份为两组第一个数字为第一位,后三位和其他结尾为每二位
//并替换成 第一位,第二位 注意 ,的使用很好. 也就是将4123先替换成4,123
//由于此表达式默认采用贪婪匹配所以从数值后向前匹配再通过循环进行再匹配替换从而可以将
//12345678分成你想要的123,456,78 楼主彩用(,|$)很精典,因为它略去了第二次匹配时的,问题
//stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
//最终赋值到输入框中
//如果有小数点则加上并购成最终数字否则显示替换后的txt[0]
return convertCurrency(ms-0);
//将ms转换为数字送到number2num1去转换
}

</SCRIPT>

小写金额:<input type="text" name="aaa" id="aaa" onkeyup="nst_convert(this)"><br>
大写金额:<input type="text" name="bbb" id="bbb" size=80>[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: