• ベストアンサー

3桁カンマを一斉に付けたい

表があって、表の中の複数のテキストボックスに数値・文字を入れて、最後にボタンを押すと、数字のテキストボックスのみ3桁のカンマを入れたい。こういう便利なこと?をしたいのですが、新米にはむずかしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>表の中の数値をカンマ区切りにフォーマットする</title> <script type="text/javascript"> <!-- function commaFormat(ID){ var inp=document.getElementById(ID).getElementsByTagName('input');//IDで示されたタグの配下のinput について処理する var len=inp.length; for(var i=0;i<len;i++){ if(inp[i].type == "text"){ //テキストボックス if(!isNaN(inp[i].value)){ //数値が入力されている inp[i].value=toCommaFormat(inp[i].value);// カンマを振る inp[i].style.textAlign="right";//右揃えする、余計? } } } } function toCommaFormat(v){ var re = /(-?\d+)(\d{3})/; v=v.toString(); while(re.test(v)){ v = v.replace(re, "$1,$2"); } return v; } //--> </script> </head> <body> <form> <table id="HYO"> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> <tr><td><input type="text" ></td><td><input type="text" ></td><td><input type="text" ></td></tr> </table> <input type="button" onclick="commaFormat('HYO')" value="数値にカンマを付ける"> </form> </body> </html>

その他の回答 (1)

noname#22259
noname#22259
回答No.2

>>No.1 (^^ function toCommaFormat(v){ //var re = /(-?\d+)(\d{3})/; var re =/^([+-]?\d+)(\d{3})/; //better for decimal point v=v.toString(); while(re.test(v)){v = v.replace(re, "$1,$2");} return v; }

nakada789
質問者

お礼

どうもありがとうございました。 とても便利になりました。 scriptの細かい点はよくわかりませんが、なんとなく雰囲気はわかりました。 (^^;

関連するQ&A