数値チェック
変数が数値かどうかを調べるには、次の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);
}
}
使用例