<HTML> 
<BODY> 
<script  language=javascript> 
function  commafy(num)

   num  =  num+""; 
   var  re=/(-?\d+)(\d{3})/ 
   while(re.test(num))
   { 
     num=num.replace(re,"$1,$2") 
   } 
   return  num; 
}
function  commafyback(num)

   var x = num.split(',');
   return parseFloat(x.join(""));
}   
</script> 
<input  type=button  value="commafy"  onclick="alert(commafy(123456789.01))"> 
<input  type=button  value="commafy"  onclick="alert(commafyback('123,456,789.01'))"> 
</BODY>
</HTML>

join()默认是以逗号分隔。
当然程序还可以写的多一点点,比如split 后,用 for in实现链接。
posted on 2007-06-20 01:19 -274°C 阅读(3274) 评论(3)  编辑  收藏


FeedBack:
# re: JAVASCRIPT 千位分隔符 以及去掉千位分隔符[未登录]
2007-06-20 10:48 | 闲耘
对小数部分考虑似乎不周。下面的方法延用了你的方法名,但是查词典不知道单词加了-fy成了什么意思,请指教。

String.prototype.commafy = function(){
var _n = this.match(/(-?\d+)(\.\d*)?/);
var __n = _n[1].match(/(-?\d{0,3})((?:\d{3})*)/);
return __n[1] + __n[2].replace(/(\d{3})/g, ",$1") + // integer.
_n[2].replace(/(\d{3})/g, "$1,").replace(/(.*),$/, "$1"); // decimal.
};
Number.prototype.commafy = function(){
return this.toString().commafy();
};

String.prototype.decommafy = function(){
return this.replace(/,/g, "");
};  回复  更多评论
  
# re: JAVASCRIPT 千位分隔符 以及去掉千位分隔符
2007-06-21 00:19 | -274°C
谢谢,我受教了。  回复  更多评论
  
# re: JAVASCRIPT 千位分隔符
2008-06-11 12:40 | 鹿
楼上的整数部分有错误 , 比如 12345 只会返回 123
更正如下

String.prototype.commafy = function(){
if (this == "") return "";
var _n = this.match(/(-?\d+)(\.\d*)?/);

var length = _n[1].length;
var i = length % 3
var str1 = _n[1].substring(0,i)
var str2 = _n[1].substring(i,length)

var result = str1 + str2.replace(/(\d{3})/g, ",$1") + // integer.
_n[2].replace(/(\d{3})/g, "$1,").replace(/(.*),$/, "$1"); // decimal.

result = result.replace(/^,(.*)/, "$1")

return result;
};
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(21)

随笔分类(265)

随笔档案(242)

相册

JAVA网站

关注的Blog

搜索

  •  

积分与排名

  • 积分 - 911510
  • 排名 - 40

最新评论