var num = '10000000'; num = num.split(/(?=(?:\d{3})+$)/).join(); 正規表現は素晴らしい。 (2014/11/07追記) 元々、この実装は「正規表現を使っていかに短く書けるか」「String.prototype.replace のコールバック関数を使わずに書けるか」の着想を元にコーディングしています。 その為、かなり割り切った仕様にしており、下記制約があります。 数値文字列と数値以外の文字列が混在した文字列をサポートしない(完全な数値文字列でなければならない) 整数値のみをサポートし、小数値をサポートしない 本格的なコード 前述でサポートされなかった仕様に対応するためには String.prototype.replace のコールバック関数を利用するしか手段はないと考えています。 具体的には下記のようになります。 /** * i