js控制百分比不能超过100%;且小数点后保留两位小数

项目中遇到input文本框输入百分比例,要求不能超过100%,且最多只能保留两位小数。下边是封装好的一个简单的方法

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>百分比方法</title>
</head>
<body>
    只能输入数字和小数点的文本框:<input name="input1" onkeyup="checkIsPreset(this)">
<script language="JavaScript" type="text/javascript">
function checkIsPreset(obj){
  obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
  obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
  obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的.
  obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
  //判断百分比不能超过100%
  if(obj.value>=100){
      alert("分红比例不能大于等于100");
      obj.value ="";
      return;
  };
  //如果有小数点,判断 只能保留两位
  if(obj.value.indexOf(".")>-1){
      if(obj.value.split(".")[1].length>2){
          alert("小数点后只能保留两位");
          obj.value ="";
          return;
      }
  }
}

</script>
</body>
</html>

 

posted @ 2018-05-17 10:46  TigerZhang  阅读(3486)  评论(0编辑  收藏  举报