JS限制输入框仅允许数字输入的两种实现方式
作者:异步漫步时间:2026-10-22 18:04:47浏览:356
本文介绍如何在HTML输入框中限制用户仅能输入数字。通过对比原生JS与jQuery两种方案,详细解析利用onkeyup事件结合正则表达式过滤非数字字符的实现原理,并重点解决光标移动受限的问题,提供优化后的代码逻辑。
原生JS实现数字输入限制
示例如下:
<input type="text" name="" id="box" />
通常的做法是直接在内联事件中处理:
<input type="text" name="" id="box" onkeyup="value=value.replace(/[^\d]/g,'')"/>
优化光标移动问题的jQuery方案
上述方法的缺陷在于,当用户正确输入一串数字后,若尝试将光标移至前面修改其中某位数字,会发现无法移动光标。因此,下面介绍一种更完善的处理方式。
实际上,增加一个判断条件可以使体验更加顺畅:
$('input#box').keyup(function(){
var c=$(this);
if(/[^\d]/.test(c.val())){//替换非数字字符
var temp_amount=c.val().replace(/[^\d]/g,'');
$(this).val(temp_amount);
}
})
上述函数使用了jQuery的选择器,请注意确保已加载jQuery库。可前往jQuery官网下载。
如需了解更多功能,可参考文章:js限制文本框只能输入数字方法小结
作者最新文章
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
