数値チェック

変数が数値かどうかを調べるには、次の2方法があります。
(1)isNaN --- 値が数値かどうかを調べる。
(2)typeof --- 型も同時に調べる。
「isNaN」と「typeof」では判定が異なることがあります。

・数値型 --- どちらも数値と判定 val = 2; alert(typeof val == "number"); → true alert(isNaN(val)); → false(数値) ・文字列型 --- 判定が異なる val = "2"; alert(typeof val == "number"); → false alert(isNaN(val)); → false(数値)

乱数

(1)0からnまでの乱数
var result = Math.floor(Math.random() * (n + 1));
(2)mからnまでの乱数
var result = Math.floor(Math.random() * (n - m + 1)) + m;

(例1)変数iに0から2までの範囲のランダムな整数を代入する i = Math.floor(Math.random() * 3); (例2)変数iに3から5までの範囲のランダムな整数を代入する i = Math.floor(Math.random() *3 ) + 3;

カンマ付き数字

整数の場合

整数(符号つき)に対して、正規表現を使ってカンマ区切りにします。
ループを使って3桁以上の数字が続く限り、下からカンマを入れていきます。

function setComma(str) { var num = new String(str).replace(/,/g, ""); while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; }

小数の場合

function numFormat(str) { if (str.lengtn == 0) return ""; if (str === "0" || str === 0) return "0"; var is_minus= false; //負数・正数を判別するフラグ if (str.charAt(0) == "-") { is_minus= true; } //小数部分の処理 var decimalNum = ""; //小数点以下の文字列 var pointIndex = str.indexOf("."); if (pointIndex >= 0) { decimalNum = str.substring(pointIndex); str = str.substring(0, pointIndex); } str = str.replace(/[^0-9]/g, ""); //文字列(カンマなど)を取り除く var count = 0; var num= ""; for (var i = str.length - 1; i >= 0; i--) { num= str.charAt(i) + num; count ++; if (((count % 3) == 0) && (i != 0)) { num = "," + num; } } if (is_minus) { return ("-" + num+ decimalNum); } else { return (num+ decimalNum); } } 使用例 <input type="text" name="kingaku" onBlur="JavaScript:this.value=numFormat(this.value);" >