JavaScript实现文本框输入限制:数字、小数点与字母的多种方案

作者:纸飞机

时间:2026-10-27

浏览:360

本文整理了JavaScript中限制文本框输入内容的多种实现方式,涵盖仅允许数字、数字加小数点、字母及汉字等场景。通过onkeyup、onkeypress及onblur等事件结合正则表达式,提供具体的HTML input代码示例,帮助开发者快速实现前端输入验证功能。

文章目录

JavaScript文本框输入限制方案汇总

本文摘录自其他资料,旨在整理JavaScript中判断文本框仅能输入数字和小数点的代码,方便日后查阅。



仅允许输入数字(不含小数点)

第一种情况:限制文本框只能输入数字,不允许包含小数点。



<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">



允许输入数字和小数点

第二种情况:允许输入数字和小数点。



<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">



<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">



数字与小数点的高级控制方法

第三种情况:实现数字和小数点输入控制的另一种方法。



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



限制输入字母、汉字及特定字符

第四种情况:限制文本框只能输入字母和汉字。



<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">



英文字母、数字与中文混合输入限制

第五种情况:仅允许输入英文字母和数字,禁止输入中文。



<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">



第六种情况:限制只能输入数字和英文,示例中特别标注了特定字符。



<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">



小数位数的精确控制与运算符号支持

第七种情况:限制小数点后最多保留两位,允许输入数字和中文,禁止输入字母和运算符号。



<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">



第八种情况:限制小数点后最多两位,允许输入数字、字母和中文,同时支持运算符号。



<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">



第九种情况:限制输入内容仅为数字、小数点以及加减乘除运算符号。



onkeypress="return event.keyCode>=4&&event.keyCode<=57"

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章