ある数nが小数点k桁かどうかチェックするプログラムをちょっと作ってみました。
(ただし、nは正の数とする)
function decimalCheck(aNum,aPoint){ /* 空の場合は、falseを返す */ if(aNum == ""){return false;} /* 0~9と.以外がある場合は、falseを返す */ if(aNum.match(/[^0-9.]/) != null){return false;} /* aPointに引数場合は、整数チェック */ if(aPoint == undefined || aPoint == 0){ /* .がある場合は、falseを返す。 */ return (aNum.match(/[.]/) != null)?false:true; }
var comma = aNum.indexOf(".",0); var comma = parseInt(comma,10) + 1 + parseInt(aPoint,10);
return (aNum.length != comma)? false:true;
} |
チェックしたい数を第一引数に、桁数は第二引数に設定します。
例えば、decimalCheck("10.1",2)なんて設定すれば、10.1が小数点2桁がどうか確認します。
(この場合、falseを返します。)
第二引数が0の場合は、整数かどうかチェックを行います。
純粋にk桁がどうかをチェックするだけなので、k桁までオッケー(k=2の場合は、小数点2桁までオッケー)という処理をほどこしたい場合は、ちょっとソースを追加する必要がありますが、それについてはまた後で書きたいと思います。
0 コメント:
コメントを投稿