なんか見かけたのでちょっと作ってみた。
① ~ ③は他人様。最後に俺。
タイム測定の為に、メソッド名はちょっと改変させてもらってる。
Contents
① 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]; }
タイム測定
②番速っっっ!!
コメント
3桁ごとに区切る
私ならこう書く。
comma separation by javascript
suVeneのあれ: [JavaScript]数値を3桁ごとに区切る これ↑を見かけたので試してみました。 最初に結論を書いておくと、やっぱり iandeth. – javascriptで数値をカンマ区切り文字列に変換する関数メモ ↑これ速いですね。 僕が考えたものも載せてありますが、速くしようと努
3桁ごとにコンマ
Perlの表記に慣れきってて、いざって時にすぐ書けないのでメモ。function set_comma(val){ var ret = String(val); var tmp = “”; while(ret != (tmp = ret.r…