BMI(Body Mass Index)は、身長と体重で算出される体格指数であり、肥満度を測るための国際的な指標です。
BMI が高くなると、生活習慣病などにかかりやすくなるそうです。
BMI は次のような式で求められます。
BMI = 体重 [kg] ÷ 身長 [m] ÷ 身長 [m]
= 体重 [kg] ÷ ( 身長 [cm] * 身長 [cm] ) * 10000
計算された値を以下の表に当てはめる事で、肥満度を知る事ができます。
標準値は22.0です。
BMI と肥満度
BMI 値 |
肥満度 |
18.5未満 |
やせ |
18.5〜25未満 |
普通 |
25〜30未満 |
肥満 |
30以上 |
高度肥満 |
/* プログラム :BMI 計算 */
/* エラー処理関数:InputErrorCheck */
/* 計算処理関数 :BMIcalc */
/* 入力フォーム名:bodycheck */
/* 入力値 :身長=height */
/* 入力値 :体重=weight */
/* 出力値 :BMI値=BMI */
<script type="text/javascript">
<!--
function InputErrorCheck(){
var str1 = document.bodycheck.height.value;
var str2 = document.bodycheck.weight.value;
if( str1=="" || str2=="" ){
alert("空欄があります。")
}
else if( str1.match(/[ ]/) || str2.match(/[ ]/) ){
alert("スペースが入っています。")
}
else if( str1.match(/^0/) || str2.match(/^0/) ){
alert("0から始まる数値は無効です。")
}
else if( str1.match(/[^0-9.]/) || str2.match(/[^0-9.]/) ){
alert("半角数字で入力してください。")
}
else if( str1 < 50 ){
alert("身長が小さ過ぎます。")
}
else if( str1 > 230 ){
alert("身長が大き過ぎます。")
}
else{
BMIcalc();
}
}
function BMIcalc(){
h = eval(document.bodycheck.height.value);
w = eval(document.bodycheck.weight.value);
document.bodycheck.BMI.value= Math.round(( w / ( h * h ) * 10000 ) * 10) / 10 ;
}
//-->
</script>
<form name="bodycheck">
身長 <input type="text" name="height" size=5 value=""> [cm]
体重 <input type="text" name="weight" size=5 value=""> [kg]
<input type="button" value="計算!" name="result" onClick="InputErrorCheck()">
<input type="reset" value="クリア" name="reset">
BMI <input type="text" name="BMI" size=5 value="">
</form>
入力フォームがあるので、入力に対するエラー処理が必要です。
計算に必要なのは半角数字のみなので、それ以外の文字列がフォームにある状態で計算してしまわないようにします。
入力された文字列を、正規表現を利用して判別し、半角数字のみ有効にします。
フォームに空欄や全角文字、特殊文字がある状態で計算ボタンが押されると、エラー内容に応じたダイアログを表示します。
BMI の場合は、身長の単位をセンチとメートルで間違えやすいので、受け付ける範囲を決める事で単位を間違えた際にエラーが表示されるようになります。