スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScriptにおけるカンマ区切りのプログラム例

JavaScript における 3 桁のカンマ区切りのプログラム例。マイナス符号付きの数や小数にも対応。

なお、小数のカンマ区切りにおいては、小数点以下の数字はカンマで区切らないのが普通です (例えば、Microsoft Excel の「セルの書式設定」において、数値の表示形式で「桁区切り」を使用してみてください)。

プログラム例 1

正規表現を使用した素朴なプログラム。

<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
<script>
<!--
var numeric = "-1234567.8901";
document.write("result: " + addCommas(numeric));
// result: -1,234,567.8901

function addCommas(num) {
  var result = num.match(
    /^(-?)([0-9]+)(\.?)([0-9]*)$/);
  if(result != null) {
    var sign      = result[1];
    var int_part  = result[2];
    var dot       = result[3];
    var frac_part = result[4];

    int_part = int_part.replace(
      /([0-9]+?)(?=(?:[0-9]{3})+$)/g, "$1,");

    return sign + int_part + dot + frac_part;
  }
  return num;
}
//-->
</script>
</head>
<body>

</body>
</html>

プログラム例 2-1

replace メソッドの第 2 引数に無名関数を渡した例。

<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
<script>
<!--
var numeric = "-1234567.8901";
document.write("result: " + addCommas(numeric));
// result: -1,234,567.8901

function addCommas(num) {
  return num.replace(
    /^(-?)([0-9]+)(\.?)([0-9]*)$/, 
    function() {
      var sign      = arguments[1];
      var int_part  = arguments[2];
      var dot       = arguments[3];
      var frac_part = arguments[4];

      int_part = int_part.replace(
        /([0-9]+?)(?=(?:[0-9]{3})+$)/g, "$1,");

      return sign + int_part + dot + frac_part;
   });
}
//-->
</script>
</head>
<body>

</body>
</html>

プログラム例 2-2

replace メソッドの第 2 引数に無名関数を渡した例。

<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
<script>
<!--
var numeric = "-1234567.8901";
document.write("result: " + addCommas(numeric));
// result: -1,234,567.8901

function addCommas(num) {
  return num.replace(
    /^(-?)([0-9]+)(\.?)([0-9]*)$/, 
    function(match, sign, int_part, dot, frac_part) {
      return sign + 
        int_part.replace(
          /([0-9]+?)(?=(?:[0-9]{3})+$)/g, "$1,") +
        dot + frac_part;
    });
}
//-->
</script>
</head>
<body>

</body>
</html>

【theme : プログラミング
【genre : コンピュータ

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。