分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

【JS】input输入框只能输入数字

发布时间:2023-09-06 02:16责任编辑:蔡小小关键词:暂无标签

一、实现思路

input只能输入纯数字的思路其实很简单,监听输入框值的变化,每次输入检索输入框的值,将非数字的字段替换成空,再将此值赋予给输入框。

关键代码:

\d:匹配数字

^/d:全文匹配非数字

replace(/[^/d]/g,‘‘):全文匹配非数字,并替换成空。

那我们的实现代码为:

var input = document.querySelector("#demo");input.oninput = function (){ ???input.value = input.value.replace(/[^\d]/g,‘‘);}

输入数字字母试试:

二、onchange  onkeyup与oninput的选择

其实说到input输入监听,更多想到的是onchange与onkeyup,而在上面实现中,使用的却是onkeyup,这里简单说说理由。

1.oninput:在用户输入时触发,与onchange不同之处在于 oninput 事件在元素值发生变化是立即触发。

2.onchange:在input值发生改变且输入框失去焦点时触发,所以在用户输入失去焦点前,非数字并不能被替换为空,视觉上存在一点缺陷。

试试onchange:

3.onkeyup:键盘弹起时触发,也存在一个问题,英文输入情况下,非数字会短暂存在后才会被替换,中文输入情况下,字母还是能输入,功能上存在一定缺陷。

试试onkeyup:

综上,还是推荐oninput达到最佳效果。

【JS】input输入框只能输入数字

原文地址:https://www.cnblogs.com/echolun/p/9711267.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved