Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30479429
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2011-11-14 11:39:50

千位格式化:就是所谓的金钱格式,数字逢三加一个逗号.比如1000-->1,000   1233333-->1,233,333等等.相信大家都能看懂.
由于javascript支持正向预搜查,那么实现起来就不难了.
这里给出一个可以自己定制规则的思想.比如下面的代码不对以字母,下划线和.开头的数字进行格式化.

  1. <script type="text/javascript">
  2. <!--
  3. String.prototype.commafy = function(){
  4.     return this.replace(/(^|[^\w.])(\d{4,})/g, function($0, $1, $2){
  5.         return $1 + $2.replace(/\d(?=(?:\d\d\d)+(?!\d))/g,"$&,");
  6.     });
  7. }

  8. Number.prototype.commafy = function(){
  9.     return String(this).commafy();
  10. }

  11. alert((1000).commafy()) // 1,000
  12. var data = '1\n' +
  13.     '10\n' +
  14.     '100\n' +
  15.     '1000\n' +
  16.     '10000\n' +
  17.     '100000\n' +
  18.     '1000000\n' +
  19.     '12345678901234567890\n' +
  20.     '1000.99\n' +
  21.     '1000.9999\n' +
  22.     '.9999\n' +
  23.     '-1000\n' +
  24.     '$1000\n' +
  25.     '"1000"\n' +
  26.     '1000MHz\n' +
  27.     'Z1000';
  28. alert(data.commafy());
  29. /* Output:
  30. 1
  31. 10
  32. 100
  33. 1,000
  34. 10,000
  35. 100,000
  36. 1,000,000
  37. 12,345,678,901,234,567,890
  38. 1,000.99
  39. 1,000.9999
  40. .9999
  41. -1,000
  42. $1,000
  43. "1,000"
  44. 1,000MHz
  45. Z1000
  46. */

  47. //-->
  48. </script>


阅读(1714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~