在项目中会遇到表单填写的时候在input中输入纯数字的情况,这个时候需要我们在输入框对用户的输入做一些限制

1.文本框只能输入数字代码(小数点也不能输入)

<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

2.只能输入数字,能输小数点.

<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">

3.数字和小数点方法二

<inputtype="text"t_value=""o_value=""onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"
/>

4.只能输入字母和汉字

<input onkeyup="value=value.replace(/[\d]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))"maxlength=10 name="Numbers"> 

5.只能输入英文字母和数字,不能输入中文

<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"> 

6.只能输入数字和英文

<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')"> 

7.小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:

<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false"> 

8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:

<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')"> 

9.只能是数字和小数点和加减乘際

onkeypress="return event.keyCode>=4&&event.keyCode<=57"

10.input校验不能以0开头的数字

<input type="text"  class="form-control"  onkeyup="value=value.replace(/[^\d]/g, '').replace(/^0{1,}/g,'')"/>

扩展:

一、使用JS限制 input 输入框只能输入纯数字

1、onkeyup = "value=value.replace(/[^\d]/g,'')"

使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母,所以:不推荐

2、onchange = "value=value.replace(/[^\d]/g,'')"

缺点:使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应

3、oninput = "value=value.replace(/[^\d]/g,'')"

使用 oninput
事件,完美的解决了以上两种问题,他可以即时做出响应,
缺点:当你先输入数字,切输入法中文,开始输入,之前输入的数字会一个个的都消失,直到内容为空

4、最后,我发现了一个功能实现最好的:同时使用onkeyup="this.value=this.value.replace(/\D/g,'')" + onafterpaste="this.value=this.value.replace(/\D/g,'')"
,唯一不太行的就是 输入英文或中文是输入框都会频闪一下键盘输入的东西,但还是可以接受的

二、VUE使用a-input-number组件限制 input 输入框只能输入纯数字

利用a-input-number组件的controls属性api去控制不显示增减数值的按钮

缺点:当你输入中文或英文时,只有在输入框失去焦点 的时候才会去校验数字

三、VUE使用a-input组件利用type=number限制 input 输入框只能输入纯数字

当input 使用了type='number’后,会出现这个增减数值的按钮,这里建议使用css去控制不显示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<a-input type='number' />

// css部分 需要注意浏览器兼容问题

<style lang="css" scoped>

input::-webkit-outer-spin-button,

input::-webkit-inner-spin-button {

  -webkit-appearance: none;

  appearance: none;

  margin: 0;

}

/* 火狐 */

input {

  -moz-appearance: textfield;

}

缺点:就是你输入中文或者英文他会直接拼接一个 'e' 或 'E',所以:‘不推荐’

总结:最最最后,个人感觉使用JS的方案四比较合适

<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

input输入框限制只能输入数字的方法相关推荐

  1. Element-ui input 输入框限制只能输入数字的问题

    需求说明 后台管理系统,使用element-ui el-input组件,要求只能输入数字,最先使用的办法: <el-inputv-model.number='count'type='number ...

  2. input输入框限制只能输入数字

    昨天博主接到一个需求说form表单里面的input输入框有些你得给它限制一下,不要比如有些限制一下只能让他输入数字,不能让客户输入文字或者英文 我这边给大家提供两种方法来实现这个功能,当然,我把相关情 ...

  3. 关于element-ui的输入框限制只能输入数字的问题

    关于element-ui的输入框限制只能输入数字的问题 这个问题我使用过很多办法,每一种都去尝试,但是结果都不太理想 比如以下的几种方法 注:我要的效果是,输入框内只可输入数字,除了数字其他什么都不可 ...

  4. 输入框内只能输入数字,输入其他内容不显示

    JavaScript中Event.returnValue属性 : 该属性是设置或者获取事件的返回值,Event对象的returnValue属性的值一般是true,即脚本处理完自己的工作后由元素处理事件 ...

  5. 关于input文本框只能输入数字的几种实用方法!!!

    最近在做jsp动态表格的时候,常常会遇到一些金额.数量等,只能输入数字,问题虽然简单,但是走了一些弯路,在此总结一下. 这个问题有三种解决方案,第一种最适用. 1.使用isNaN()函数 isNaN( ...

  6. 输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;

    场景: –要求1:输入框只能输入数字,可以使正数.负数.0,小数点最多保留两位. –要求2:不需要自动补齐小数点,也不需要自动四舍五入. element-ui的数字输入框el-input-number ...

  7. vue中,input输入框只允许输入数字

    在vue项目中,输入框只允许输入数字,现将自己使用的一种方法记录,以供大家参考 这里需用到vue修饰符 不了解的同学可去vue官网看看,或者百度看看其他文档的讲解. .number 如果想自动将用户的 ...

  8. element-ui输入框限制只能输入数字一系列问题

    el-input 限制只能输入数字 οninput="value=value.replace(/^\.+|[^\d.]/g,'')" maxlength="11" ...

  9. input 输入框限制只能输入两位有效小数

    前端入门即教学,今天博主分享几个前端金额实用的小案例,复制拿过去就能用哦! 相信有很多前端小伙伴在工作中遇到过这样的需求,就是限制输入框内容只能输入两位小数吧,想了用正则但是又不知道怎么下手的同学,接 ...

最新文章

  1. OpenCV像素点处理 1
  2. System tuning中经常用到的一些Tcode
  3. 如何制作python检查小软件_如何用Python制作整蛊小程序
  4. Eclipse+jetty+maven+Struts2+Spring2+Hibernate3+annotation注册系统V1.0
  5. 距离矢量路由算法的java代码_八大排序算法比较(附Java代码)
  6. 1021 个位数统计 (15 分
  7. 12月13日云栖精选夜读 | 干货 :5个提醒,让你远离“数据呆”
  8. python和c混编_python与C、C++混编的四种方式(小结)
  9. zookeeper 客户端常用命令_看完这篇文章,还说自己不会使用Zookeeper命令吗?
  10. 水电图纸——电气系统识图-3.4
  11. 最新全开源烟雨简约要饭系统网站源码在线
  12. 华灿光电收购美新半导体 未来形成LED和传感器双主业发展
  13. 外卖小程序对接飞鹅小票打印的实现
  14. 钉钉企业应用网关接入(保姆级教程)
  15. IPSEC对称解密以及非对称加密
  16. 【光线追踪】 流程分析与实现的路径跟踪渲染器
  17. Markdown怎么加入emoji
  18. Qt Quick实现九宫格划指锁屏视图
  19. linux+ibm+was+版本,IBM WAS 9.0完整版安装参考手册
  20. 台式电脑强制删除文件的资料恢复法子

热门文章

  1. 关于Android模拟器运行时,鼠标放到虚拟键盘上报错的解决办法
  2. 跟老男孩儿学习LINUX运维
  3. express,multer,jQuery前端后端上传单个文件
  4. Jq 复选框 全选,全不选,监听复选框,获取选中值
  5. 表单提交验证,手机号码验证
  6. php无法访问_服务器无法访问php文件
  7. [洛谷]P1746 离开中山路
  8. 忘记Word文档密码?这里有解!
  9. 加入购物车 如果已有商品 数量++
  10. .NetCore的依赖注入