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

          搜索

          •  

          積分與排名

          • 積分 - 916110
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 九寨沟县| 贵阳市| 惠东县| 淳安县| 乌海市| 大方县| 吴江市| 百色市| 库车县| 盐城市| 沈丘县| 贵港市| 富源县| 精河县| 和政县| 环江| 濉溪县| 渑池县| 灵山县| 巩义市| 辉县市| 公主岭市| 虎林市| 玛沁县| 惠来县| 漠河县| 和政县| 靖西县| 调兵山市| 师宗县| 永丰县| 灵武市| 抚州市| 曲靖市| 辽阳市| 济源市| 改则县| 成安县| 肇东市| 富锦市| 瑞金市|