大学解惑06 - 要求输入框内只能输入2位以内小数,怎么做?

news2024/12/21 12:44:15

请听题:有一个输入框,准备用于计算使用,要求点击“校验”按钮的时候进行验证,必须输入数字,并且只能是2位以内的小数,如果输入不合法,请给出提示,如果输入合法通过验证,则提示 "输入正确"

 

    这里我们用span标签做一个按钮,然后为其添加onclick事件,用于点击的时候做校验用,input输入框添加id属性,页面布局大概是这样:

<div class="box">
   请输入合法的数字:
   <input type="text" id="num1" />
   <span class="equal" onclick="check()"> 校验 </span>
</div>

 一、第一步,验证必须是数字

        1、获取输入框的dom元素

            var inputDom = document.getElementById('num1') ;

        2、通过dom元素,获取输入框的内的值,注意,获取输入框的值用的value属性

              var num = inputDom.value;

        3、验证是否是数字

              验证是否是数字有那么几种方法:

                isNaN(xxx)   

                typeof(xxx)

                Object.prototype.tostring.call(xxx);

        4、首先必须输入内容,这就看获取的num值得length长度就可以,长度大于0就是输入了,等于0就是没有输入

         5、这里推荐使用isNaN,如果输入的是数字,isNaN方法会返回false,如果不是数字呢,返回的就是true。到这一步,我们先看一下代码:

function check() {
   var inputDom = document.getElementById('num1');
   var num = inputDom.value;
   if (num.length === 0) {
     alert('请输入数字');
     return;
   }
   if (isNaN(num)) {
     alert('请输入数字');
     return;
   }
}

二、第二步,验证输入的小数位,不能超出2位小数

        刚刚我们已经验证了必须输入数字,而且小数也可以算作是数字。javascript里没有浮点型,什么双精度型,都是数值型。所以怎么验证出用户输入的是超过2位小数了呢,比如3.333这种。在这里提供几种思路

        1、通过input输入框获取到的value值,是字符串类型的,哪怕是输入的是100,刚刚取出来,那个新鲜的热乎的值也是字符串类型的。

        所以可以通过小数点进行分割,也就是数组的split方法,可以将3.323分割成数组,数组的2个元素,第2个就是小数部分。然后看一看小数部分的长度。代码就像这样:

var numArray = [];
if (num.indexOf('.') !== -1) {
  numArray = num.split('.');
  if (numArray[1].length > 2) {
     alert('请输入2位以内小数的数字');
     return;
   }
}

        2、也可以用这种方法,我们需要验证的是小数位不能大于2位,那我们给这个数字乘以100以后,如果还有小数点,那不就是输入的超出范围了。

        但是乘以100以后怎么判断还有小数呢,也可以用刚才的方法,这里用一个运算符号  余数;

        比如5除以2,等于2.5对吧。但在js里,还可以用 余数 的运算符号, 5%2 = 1 ;

        但需要注意的是,Input取出来的值是字符串的,如果用于计算,需要转换成数值型的,这里用一下Number方法.代码就像这样:

num = Number(num);
num = num * 100;
if (num%1 !== 0) {
  alert('请输入2位以内小数的数字');
  return;
}

 

        

总结:

        通过以上的校验判断,就可以一步步确定用户输入的内容是否合法,等全部验证通过就可以真正的拿到数值去做计算或者其他逻辑操作了。这里的判断逻辑比较细化,以后还会有正则表达式相关的内容,正则表达式可以更加简洁的高效的校验数据信息。

        大家在学习过程中,哪些地方不明白,有疑惑都可以告诉我,欢迎留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

又是一篇教你摸鱼的文章,用Python实现自动发送周报给老板

前言 有没有哪个同志跟我一样&#xff0c;每周都要写工作周报 像我这种记性不好的&#xff0c;一个月四周忘记三次 索性就用Python写个小工具&#xff0c;让它每周帮我给老板发周报~ Github: Weekday 小工具 提出目标 源码.资料.素材.点击领取即可 想有一个工具能发邮件 目…

ARM 汇编基础

一、ARM架构 ARM芯片属于精简指令集计算机(RISC&#xff1a;Reduced Instruction Set Computing)&#xff0c;它所用的指令比较简单&#xff0c;有如下特点&#xff1a; 对内存只有读、写指令对于数据的运算是在CPU内部实现使用RISC指令的CPU复杂度小一点&#xff0c;易于设计…

WebShell箱子简介与原理

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是WebShell箱子简介与原理。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对未授…

【面试】【项目】谷粒商城

视频链接 项目调查 这项目是这么多免费视频里最好的了。但依旧是demo。 最好还是买慕课网上的实战课&#xff0c;那些老师都有丰富的开发经验&#xff0c;有经验跟没经验讲的课是完全不同的。 谷粒商城我觉得是不low的&#xff0c;我很菜&#xff0c;毕业一年半被多次辞退&a…

数据结构之-【排序】

目录 排序 ⚡️冒泡排序 ⚡️选择排序 ⚡️插入排序 ⚡️堆排序 ⚡️归并排序 ⚡️快速排序 &#x1f3f3;️‍&#x1f308;排序 将数字从小到大的顺序排列 &#x1f534;冒泡排序 「冒泡排序」重复"从序列右边开始比较相邻两个数字的大小&#xff0c;再根据结果交换两个…

国产蓝牙耳机哪个牌子好?国产蓝牙耳机质量排行榜

随着3.5 mm耳机插孔被淘汰&#xff0c;特别是5G时代&#xff0c;让手机的内部结构变得越来越小&#xff0c;要将耳机插口塞进一个新的插口&#xff0c;无疑是一件非常困难的事情&#xff0c;而随着蓝牙技术的不断进步&#xff0c;蓝牙耳机也逐渐成为了如今人们配戴手机的首选&a…

Revit中阀门在项目中不可用无法与管道连接?

一、Revit中阀门在项目中不可用的问题 在项目中放置阀门时&#xff0c;有时候不可用&#xff0c;会出现如图1所示问题&#xff0c;无法与管道连接。 出现上图显示问题是因为在编辑族的时候&#xff0c;阀门两边的连接件原心没有完全重合。打开编辑族界面&#xff0c;可以看到如…

怎么辨别哪些才是真的低代码开发平台?

怎么辨别哪些才是真的低代码开发平台&#xff1f;第一次看到这个问题时&#xff0c;我就知道为什么有人会这么问了&#xff0c;目前低代码市场龙蛇混杂&#xff0c;普通人很难分辨出“真”低代码。所以这个问题中“真正”二字最为重要&#xff0c;圈起来&#xff0c;下面我们正…

【产品新体验】CSDN开发云·云IDE使用教程

【产品新体验】CSDN开发云云IDE使用教程1、初识云IDE1.1 拉去git项目1.2 密钥管理2、整体分析云IDE产品介绍 云IDE使用教程 免费使用地址&#xff1a;点击【云IDE】&#xff0c;即可开始创建工作空间啦~ CSDN最新产品【云IDE】来啦&#xff01;【云IDE】将为各位技术er一键秒级…

No6-3.从零搭建spring-cloud-alibaba微服务框架,实现资源端用户认证与授权等(三,no6-3)

代码地址与接口看总目录&#xff1a;【学习笔记】记录冷冷-pig项目的学习过程&#xff0c;大概包括Authorization Server、springcloud、Mybatis Plus~~~_清晨敲代码的博客-CSDN博客 之前只零碎的学习过spring-cloud-alibaba&#xff0c;并没有全面了解过&#xff0c;这次学习p…

【Python】入门,总结与拾遗

前言 根据我的实践经验来看&#xff0c;对于有编程基础&#xff08;如C语言&#xff09;的同学来说&#xff0c;python入门应该很简单&#xff0c;而且加上官方文档做得非常好&#xff0c;所以个人建议python的学习主要去参考官网。本博客主要是记录那些容易忽略的关键点以及对…

蓝桥杯单片机第七届省赛题详细讲解(温度记录器)

看之前强烈建议先自己做一遍&#xff01;&#xff01;&#xff01;演示效果题目讲解代码main.cds1302.cds1302.honewire.conewire.h工程文件演示效果 题目讲解 首先我们从系统框图看起&#xff1a; 做题之前要做的是把系统框图里面的各个模块先提前调试好&#xff01;&#x…

StarRocks 的学习笔记

StarRocks 的学习笔记 文章目录StarRocks 的学习笔记1. 介绍1.1 StarRocks 特性1.2 使用场景1.3 OLAP 多维分析1.4 实时数据仓库1.5 高并发查询1.6 统一分析2. 系统架构2.1 StarRocks架构2.2 StarRocks业务架构2.3 StarRocks 数据生态2.4 *数据管理3. 特性3.1 MPP分布式执行框架…

ES6中的set与map

文章目录1.set1.1创建set集合1.2 如何对set集合进行后续操作1.3 如何与数组进行相互转换1.4 如何遍历1.5set的应用2.map集合2.1 如何创建map2.2 如何进行后续操作2.3 如何与数组转换2.4 遍历一直以来&#xff0c;JS只能使用数组和对象来保存多个数据&#xff0c;缺乏像其他语言…

介绍document部分自带的方法及属性,场景使用例如倒计时等

适用场景页面不显示&#xff08;不看&#xff09;触发方法停止运行逻辑&#xff0c;页面显示&#xff08;看&#xff09;触发方法继续运行逻辑。 &#xff08;例如倒计时&#xff09; 操作手法触发&#xff0c;浏览器多页签切换时触发&#xff0c;或者当前页隐藏浏览器&#xf…

飞象星球落地舟山36所学校 双师课堂化解课后服务区域资源差异

傍晚的阳光正好&#xff0c;此时舟山二小北校区五年级学生周陈延正紧盯大屏幕&#xff0c;沉醉在《航天探秘》飞象星球双师素质课堂带来的知识奥义中。作为浙江极具特色的海岛城市&#xff0c;舟山正进行着有关课后服务领域的新探索&#xff0c;双师素质课堂便是“千岛之城”舟…

VSCODE联合ModelSim语法检错

Vscode联合ModelSim检错 一、Vscode配置 首先在 vs code 中安装支持 Verilog 的插件&#xff1a; 在 vs code 的 Extension 中搜索 Verilog&#xff0c;安装如下图所示的插件&#xff1b; 二、ModelSim语法检查器检查 Modelsim的安装破解本文不再赘述&#xff0c;可选的Mod…

【初阶数据结构】第一篇——时间复杂度和空间复杂度详解(C描述)

文章目录前言什么是数据结构&#xff1f;什么是算法&#xff1f;1. 算法效率1.1如何衡量一个算法的好坏1.2 算法的复杂度1.2 复杂度在校招中的考察2. 时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3 常见时间复杂度计算举例例1双重循环例2. 多未知数例3. 常数次循环例4…

【深度学习】卷积神经网络之双阶段目标检测|R-CNN、SPP-Net、Fast-RCNN、Faster-RCNN、R-FCN

文章目录基本概念一、R-CNN1. 网络结构2. 训练流程3. 测试阶段5.RNN存在的问题二、SPP-Net1. 网络结构2. 基础知识共享卷积计算金字塔池化 Spatial Pyramid Pooling3. 训练流程4. 测试流程5. 存在问题三、 Fast R-CNN1. 网络结构2. 基础知识感兴趣区域池化层 (ROI pooling)多任…

别再被数据分析“割韭菜了”,光学python、BI没有用,上项目才行

前几天有个粉丝找我&#xff0c;说花699报了一门数据分析课程&#xff0c;还有实战项目&#xff0c;让我帮她看看她做的数据分析。项目的名称叫&#xff1a;豆瓣高分电影分析。她写了一大堆内容&#xff0c;我也没细看&#xff0c;截取几张可视化图表给大家&#xff0c;大家觉得…