JavaScript实现输入框数字校验与光标定位
作者:木棉时间:2026-10-22 09:41:20浏览:406
本文介绍如何使用JavaScript限制HTML输入框仅接受数字输入。通过正则表达式过滤非法字符,并在清除非数字内容后,利用setSelectionRange或TextRange将光标重新定位到非法字符出现的位置,提升用户体验。
JavaScript实现输入框数字校验与光标定位
实现JavaScript对输入框的数字限制,并在清除非法字符后,将光标停留在输入非法字符的位置,参考如下实现方案:
HTML部分代码结构:
<input value="" type="text" onkeyup="javascript:RepNumber(this)">
JavaScript处理逻辑:
function RepNumber(obj) {
var reg = /^[\d]+$/g;
if (!reg.test(obj.value)) {
var txt = obj.value;
txt.replace(/[^0-9]+/,
function(char, index, val) { //匹配第一次非数字字符
obj.value = val.replace(/\D/g, ""); //将非数字字符替换成""
var rtextRange = null;
if (obj.setSelectionRange) {
obj.setSelectionRange(index, index);
} else { //支持ie
rtextRange = obj.createTextRange();
rtextRange.moveStart('character', index);
rtextRange.collapse(true);
rtextRange.select();
}
})
}
}
此外,还可以参考以下另一种实现实例:
function chkNumber(eleText)
{
var value =eleText.value;
var len =value.length;
for(vari=0;i<len;i++)
{
if(value.charAt(i)>"9"|| value.charAt(i)<"0")
{
alert("含有非数字字符");
eleText.focus();
break;
}
}
}
总结
以上就是本文关于为输入框加入数字js校验代码分享的全部内容,希望对大家有所帮助。欢迎参阅本站:Java实现JS中的escape和UNescape代码分享、在 Node.js 中使用原生 ES 模块方法解析等,如有不足之处,欢迎留言指出!
作者最新文章
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
