JavaScript实现文本框仅允许输入整数或小数

作者:半夏

时间:2026-10-29

浏览:153

本文介绍如何利用JavaScript的onkeypress、onkeyup和onblur事件,结合正则表达式实现HTML文本框仅允许输入整数或带小数点的数字。通过实时校验与焦点失去时的二次验证,确保前端输入的规范性,同时提醒开发者需配合服务端验证以保障数据安全。

文章目录

JavaScript实现文本框仅允许输入整数或小数

在进行表单开发时,经常需要限制特定输入框仅能接收数字内容,包括整数或包含小数点的数值。以下提供的代码方案通过绑定onkeypress、onkeyup以及onblur事件,对输入内容进行了全面的前端校验,经测试效果稳定可靠。

具体实现代码如下:

<input type="text" value="" 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}" />

下面对涉及的三个关键事件进行简要说明。

onkeypress 事件在用户按下并释放键盘按键时触发。

onkeyup 事件在用户松开键盘按键时触发。

onblur 事件在输入框失去焦点时触发。

此外,若需进行严格的数据安全验证,必须同时实施客户端和服务端的双重校验。上述代码仅完成了前端层面的限制,若绕过前端代码直接提交请求,而服务端未做相应验证,则存在安全隐患。

以上内容即为本文的全部介绍,希望能为读者提供帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章