本文介绍了使用JavaScript限制HTML输入框输入内容的多种实现方法。通过结合onkeyup、onkeypress等事件与正则表达式,可实现仅允许数字、小数点、字母或特定组合的输入。文中提供了8种常见场景的代码示例,包括限制小数位数及运算符号的处理,帮助开发者快速实现表单输入验证。
JS限制输入框输入的实现代码
1.文本框仅允许输入数字(禁止输入小数点)
代码如下:
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
2.仅允许输入数字,但允许输入小数点。
代码如下:
<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='';}">
3.数字与小数点输入的另一种方法
代码如下:
<input type=text tvalue="" ovalue="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.tvalue=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.ovalue=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.tvalue=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.ovalue=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.ovalue=this.value}">
4.仅允许输入字母和汉字
代码如下:
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
5.仅允许输入英文字母和数字,禁止输入中文
代码如下:
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6.仅允许输入数字和英文<font color="Red">chun</font>
代码如下:
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7.小数点后最多保留两位(支持数字和中文),禁止输入字母和运算符号:
代码如下:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8.小数点后最多保留两位(支持数字、字母和中文),允许输入运算符号:
代码如下:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
//只能输入汉字:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
//只能输入数字:
<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
//只能输入英文和数字:
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
//控制输入框只能输入文字或数字,也可以不允许输入特殊字符
//这里不允许输入如下字符: (像 !@#$%^&* 等)<br>
<textarea rows=2 cols=20 name=comments onKeypress="if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97)) event.returnValue = false;">
//只禁止空格输入
onkeyup="value=value.replace(/\s/g,'')"
//只能输入中文和英文:
onkeyup="value=value.replace(/[^\a-zA-Z\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\a-zA-Z\u4E00-\u9FA5]/g,''))"
总结
以上所述是小编给大家介绍的JS限制输入框输入的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!