本文整理了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"