[JavaScript]数値を3桁ごとに区切る - suVeneのアレ

[JavaScript]数値を3桁ごとに区切る

なんか見かけたのでちょっと作ってみた。
① ~ ③は他人様。最後に俺。
タイム測定の為に、メソッド名はちょっと改変させてもらってる。

3桁ごとに区切る – PleasureDelayerDiary はてなブックマーク数

Number.prototype.split3_1 = function() {
var r = "";
var s = this.toString().split("").reverse();
for(var i = 0; i < s.length; i++) {
if(i % 3 == 0 && i != 0 && s[i] != "-") {
r = s[i] + "," + r
} else {
r = s[i] + r;
}
}
return r;
}

iandeth. - javascriptで数値をカンマ区切り文字列に変換する関数メモ はてなブックマーク数

Number.prototype.split3_2 = function () {
var to = String(this);
var tmp = "";
while (to != (tmp = to.replace(/^([+-]?d+)(ddd)/,"$1,$2"))){
to = tmp;
}
return to;
}

JavaScriptで数値を3桁ごとに区切る - 0x集積蔵 はてなブックマーク数

Number.prototype.split3_3 = function() {
var m = (this < 0) ? -1 : 1;
var str = String(this*m).split('.');
var arr = String(str[0]).split(''), len = Math.ceil(arr.length/3), res = [];
for (var i =0;i<len;++i) res.push(arr.splice(-3,3).join(''));
return (m == -1 ? '-' : '') + res.reverse().join(',') + (str[1] ? '.' + str[1] : '');
};

後続の割りに洗練されていない俺バージョン

Number.prototype.split3_ore = function() {
('' + this).match(/(-?)([0-9]+)(.[0-9]*)?/);
var sp = [RegExp.$1, RegExp.$2, RegExp.$3];
var x = Math.floor(sp[1].length / 3) * 3;
var len = sp[1].length;
return sp[0] + (sp[1].substr(0, len - x)) + (len - x == 0 ? '' : ',') +
(sp[1].substr(len - x, x).match(/[0-9]{3}/g).join(',')) + sp[2];
}

タイム測定

②番速っっっ!!

スポンサーリンク
スポンサーリンク

コメント

  1. Big Sky より:

    3桁ごとに区切る

    私ならこう書く。

  2. comma separation by javascript

    suVeneのあれ: [JavaScript]数値を3桁ごとに区切る これ↑を見かけたので試してみました。 最初に結論を書いておくと、やっぱり iandeth. – javascriptで数値をカンマ区切り文字列に変換する関数メモ ↑これ速いですね。 僕が考えたものも載せてありますが、速くしようと努

  3. 3桁ごとにコンマ

    Perlの表記に慣れきってて、いざって時にすぐ書けないのでメモ。function set_comma(val){ var ret = String(val); var tmp = “”; while(ret != (tmp = ret.r…

コメントをどうぞ

メールアドレスが公開されることはありません。