首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

求教一个分割数字的正则表达式解决方法

2012-05-01 
求教一个分割数字的正则表达式现在有个想法,把一个数字分割成像银行的那些金额数字一样显示。比如:有个数字

求教一个分割数字的正则表达式
现在有个想法,把一个数字分割成像银行的那些金额数字一样显示。
比如:有个数字是12345678,分割后的显示就是,12,345,678这样的,每3位数加上一个逗号分割符。

[解决办法]
http://so.csdn.net/search?t=thread&q=%E9%87%91%E9%A2%9D%20%E9%80%97%E5%8F%B7
[解决办法]

HTML code
<script>function onKeyPrice(t) {     var stmp = "";     if(t.value==stmp)    {        return;     }    var ms = t.value.replace(/[^\d\.]/g,"").replace(/(\.\d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0");     var txt = ms.split(".");     while(/\d{4}(,|$)/.test(txt[0]))     {       txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");     }    t.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:""); } </script><input type="text" name="amount" onkeyup="onKeyPrice(this)">
[解决办法]
a.replace(/(.{3})/g,'$1,')
[解决办法]
JScript code
//整理了一下,写成函数形式了function addComma(n) {    var ar = n.toString().split('').reverse();    var result = [];        for (var i = 0; i < ar.length; i ++) (i + 1) % 3 == 0 && i < ar.length - 1 ? result.push(',' + ar[i]) : result.push(ar[i]);    return result.reverse().join('');}alert(addComma(123456789));
[解决办法]
很简单的正向预查:

"12345678".replace(/.(?=(...)+$)/g, "$&,")
[解决办法]
探讨

引用:

引用:

a.replace(/(.{3})/g,'$1,')


这个确实有点小问题,是3的倍数的时候,最后一位有个逗号

a.replace(/(.{3})/g, '$1,').replace(/\,$/g,'')

热点排行