title

Top  >> へっぽこJavaScript  >> BMI 計算

BMI 計算

 概要

 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以上 高度肥満

このページのTop へ

 動作

身長  [cm]

体重  [kg]

  

BMI 

このページのTop へ

 ソース

/* プログラム  :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>

このページのTop へ

 解説

 入力フォームがあるので、入力に対するエラー処理が必要です。 計算に必要なのは半角数字のみなので、それ以外の文字列がフォームにある状態で計算してしまわないようにします。 入力された文字列を、正規表現を利用して判別し、半角数字のみ有効にします。 フォームに空欄や全角文字、特殊文字がある状態で計算ボタンが押されると、エラー内容に応じたダイアログを表示します。 BMI の場合は、身長の単位をセンチとメートルで間違えやすいので、受け付ける範囲を決める事で単位を間違えた際にエラーが表示されるようになります。


このページのTop へ