<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 閱讀(3294) 評論(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

          搜索

          •  

          積分與排名

          • 積分 - 914066
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 二连浩特市| 文山县| 新龙县| 措美县| 油尖旺区| 深泽县| 瓮安县| 汉川市| 安达市| 顺义区| 秭归县| 台南市| 汤原县| 石泉县| 三都| 柘荣县| 沁阳市| 师宗县| 贺兰县| 南涧| 冀州市| 达拉特旗| 安义县| 沈阳市| 营口市| 廊坊市| 双桥区| 南康市| 灵石县| 班玛县| 仁化县| 静安区| 共和县| 黄浦区| 吴旗县| 开化县| 台中市| 铁力市| 军事| 海丰县| 莎车县|