- ベストアンサー
3桁区切り
ドリームウィーバーで下記のJAVAスクリプトを挿入ました。 <!-- a = 10000; // b = 5000; // d = a + b; // document.writeln(d); // // --> dの値を,(カンマ)で3桁区切りにする場合どのようにすればよいのでしょうか? 丸一日調べても、フォームを使用した物の記述しか見つからずに 困っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
少々長めになりますが、自分で簡単なフォーマット関数を。。 動作確認済みです。 function Format(int) { var res = ""; int = int + ""; for ( cnt = 1; cnt <= int.length; cnt++) { res = int.slice((int.length - cnt),(int.length - cnt + 1)) + res; if ( cnt/3 == Math.floor(cnt/3) ) { res = "," + res; } } return res; } a = 10000; // b = 5000; // d = a + b; // document.writeln(Format(d)); //
その他の回答 (1)
- ESate
- ベストアンサー率64% (11/17)
カンマは文字列だからdも文字列化して3桁ごとに代入すればいいわけですが、後ろから数えるか? もしくは前から数えるかが問題です sample1は後ろから、sample2は前から数えた形になります ・メソッドを豊富に利用したsample1 ・定番の処理をこなすsample2 function sample1(x){ return String(x).split('').reverse().join('').match(/\d{1,3}/g).join(',').split('').reverse().join('') } function sample2(x){ var s = String(x); var n = s.length%3 || 3; //最上位桁からカンマが入るまでの桁数 return s.slice(0,n) + s.slice(n).replace(/(\d{3})/g, ',$1') } sample1(10000) // 10,000 sample2(2000) // 2,000
お礼
出来ました!!!ありがとうございます!!