全栈开源:BMI身体质量指数计算器开源代码,公式、标准、超重、肥胖范围

简介:

下面将为各位读者朋友们开源BMI身体质量指数在线计算器的开发代码,分为两个版本,一个版本是PC端的网页版,另一个是微信小程序的版本。如果不懂得代码的朋友也没事,可以直接复制PC端网页版的代码到.txt的文件中,然后修改成.html即可,然后右键点击,选择“打开方式”中的浏览器即可。

BMI身体质量指数计算公式:

BMI= 体重(kg)/ 身高(m)²

网络

BMI指数

bmi是什么:英文为Body Mass Index,又称身体质量指数,是目前国际上常用的衡量人的身体胖瘦程度的一个参考指标。

BMI指数的超重、肥胖范围参考表

注意:数据来源网络,仅供参考,不保证正确性,不作任何决策依据!

BMI标准分类

WHO标准

亚洲标准

中国标准

体重过低

BMI < 18.5

BMI < 18.5

BMI < 18.5

正常范围

BMI >= 18.5

BMI >= 18.5

BMI >= 18.5

超重

BMI >= 25

BMI >= 23

BMI >= 24

肥胖前期

BMI >= 25

BMI >= 23

BMI >= 24

I度肥胖

BMI >= 30

BMI >= 25

BMI >= 28

II度肥胖

BMI >= 35

BMI >= 30

BMI >= 30

III度肥胖

BMI >= 40

BMI >= 40

BMI >= 40

PC端BMI计算器开源代码:

为了适配不同的前端框架,这里就设置了最简单的CSS样式,免得使用的时候为了设置不同的样式还得去手动去删除,与此同时,为了方便,脚本这边将直接使用JavaScript,而不使用Jquery了:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- html部分的代码 -->
    <div>
      <span>体重(kg)</span><input style="margin-left: 10px; width: 200px" id="i1" placeholder="输入"/>
    </div>
    <div>
      <span>身高(m)</span><input style="margin-left: 10px; width: 200px" id="i2" placeholder="输入" onkeypress="edn(event)" />
    </div>
    <div>
      <button class="bt" onclick="count()">求bmi</button><span style="margin-left: 10px; color: green" id="ds1"></span>
    </div>
    <!-- js部分的代码,这里直接写在html中,也可以写在js文件中,然后引入 -->
    <script>
    //edn用于监听在当鼠标聚焦在身高输入框时,按下回车键,就触发count()函数
    function edn(event) {
        if (event.keyCode === 13 || event.key === 'Enter') {
          count();
        }
    }
      
      function count() {
        var ds1 = document.getElementById("ds1");
        ds1.innerHTML = ""; //每次计算之前先清空答案
        var w = document.getElementById("i1").value;
        var h = document.getElementById("i2").value;
        var bmi = 0;
        if (w == "" || h == "") {
          alert("请输入数值");
        } else if (w.indexOf(" ") >= 0 || h.indexOf(" ") >= 0) {
          alert("请不要输入空格");
        } else if (isNaN(w) || isNaN(h)) {
          alert("请正确输入数值");
        } else {
          w = Number(w);
          h = Number(h);
          bmi = (w / (h * h)).toFixed(2);
        }
        ds1.innerHTML = bmi;
      }
    </script>
  </body>
</html>

微信小程序端开源代码:

wxml文件:

<view class="container">
   <form bindsubmit="count">
  
  <view>
    <label for="a">体重(kg):</label><input type="digit"  name='a' id="a" style="width:100%;border: 1px solid black;"></input>
  </view>
   <view>
    <label for="d">身高(m):</label><input type="digit"   name='d' id="d" style="width:100%;border:1px solid black;"></input>
  </view>
  <view >
    <button  form-type="submit">确定</button>
  </view>
 
  <text>{{resultData}}</text>
  </form> 
  
  </view>

js文件:

data: {
    resultData:""
  },
  
// 判断是否是数字
  isNum:function(arg){
    const regex = /^-?\d+(\.\d+)?$/;
    return regex.test(arg)
  },
// 如果输入有误,则弹出信息进行提示
  showMessage:function(arg){
    let str;
    if(arg==1){
      str="请输入有效数字"
    }else if(arg==2){
      str = "请输入有效数字或选择性别"
    }else{
      str = "请输入有效的打卡实际数字"
    }
    wx.showToast({
      title: str,
      icon: 'none', 
      duration: 2000, 
    });
  },
  // 根据输入的值计算的函数
  count(e){
    // 根据wxml中input的name属性获取输入的值
    let a = e.detail.value.a;
    let d = e.detail.value.d; 
    // 先判断是否输入的值为空
  if(a!='' && d!=''){
    // 再判断是否是有效的数字
    if(this.isNum(a) && this.isNum(d)){
    a = Number(a)
    d = Number(d)
      let v = (a/(d*d)).toFixed(3).toString();
      this.setData({resultData:v})
    }else{
      this.showMessage(1)
    }
    }else{
      this.showMessage(1)
    }
    
  },

原文:全栈开源

免责声明:内容仅供参考,不保证正确性,不作任何决策依据!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值