使用正则与JS限制Input仅输入数字的实现方法

作者:竹影时间:2026-10-30 06:36:29浏览:376

本文介绍如何在Web表单中限制文本框仅允许输入数字。通过定义包含\D的正则表达式,结合JavaScript的onblur事件或addEventListener监听blur,在用户失去焦点时自动替换非数字字符。示例展示了HTML属性绑定与JS对象方法两种实现方式,适用于手机号、邮编等场景。

限制输入数字的需求背景

在注册账号或填写信息的场景中,若用户误将电话号码输入为汉字或英文字母,会导致数据错误。为确保手机号、邮编及电话号码等文本框仅能接收数字字符,需对输入内容进行限制。

正则表达式匹配原理

实现该功能的核心思路是利用正则表达式匹配非数字字符。

具体代码实现如下:

var numRegex = /\D/g

基于onblur事件的实现方案

随后利用JavaScript的onblur事件处理逻辑。

onblur事件定义如下:

当对象失去焦点时触发该事件。

该事件常用于JavaScript验证代码,主要应用于表单输入框的校验。

其语法结构如下:

在HTML标签中:

相关代码示例:

<element onblur="SomeJavaScriptCode">

在JavaScript代码中:


object.onblur= function(){
//操作
myScript; 
} 

可通过addEventListener()方法绑定事件:

 

具体调用代码为:

object.addEventListener('blur',myScript);

完整代码示例

完整的DEMO代码示例如下:


var numRegexFn = function(obj){
obj.value = obj.value.replace(numRegex,'');
if(!obj.value){
alert('请输入数字');
}else{
alert('pass');
}
}
phone.onblur = function(){
numRegexFn(this);
}

上述内容介绍了利用正则表达式和JS限制输入框仅能输入数字的方法,希望能对读者有所帮助。

作者最新文章