Input输入框的验证
开发工具与关键技术:C# MVC
作者:李宥良
撰写时间:2019年7月6日
只允许输入英文字母、数字和下划线(以下二种方法实现)
<input name="username"
type="text" style="ime-mode:disabled">
<input name="username"
type="text"
onkeyup="value=value.replace(/[^/w/.//]/ig,'')">
只允许输入英文字母、数字和&=@
<input name="username"
type="text"
onkeyup="value=value.replace(/[^/w=@&]|_/ig,'')">
只允许输入汉字
<input name="username"
type="text" onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')">
me" type="text"
style="ime-mode:disabled">
<input name="username"
type="text"
onkeyup="value=value.replace(/[^/w/.//]/ig,'')">
只允许输入英文字母、数字和&=@
<input name="username"
type="text" onkeyup="value=value.replace(/[^/w=@&]|_/ig,'')">
只允许输入汉字
<input name="username"
type="text"
onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')">
文本框只能输入数字代码(小数点也不能输入)
<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输入框只能输入数字和 小数点后两位
function num(obj,val){
obj.value =
obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
obj.value =
obj.value.replace(/^\./g,""); //验证第一个字符是数字
obj.value =
obj.value.replace(/\.{2,}/g,""); //只保留第一个, 清除多余的
obj.value =
obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value =
obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
}
其一,只允许输入数字和小数点。
<input onKeypress="return
(/[/d.]/.test(String.fromCharCode(event.keyCode)))"
style="ime-mode:Disabled">
其二,判断的更详细一些,甚至22..2这样不算数字也判断得出来
<script>
function check(){
if (isNaN(tt.value))
{alert("非法字符!");
tt.value="";}
}
</script>
<input type="text"
name="tt" onkeyup="check();">
其三,只允许输入整数。其实也完全可以根据第三条来举一反三做一些限制。
<script language=javascript>
function onlyNum()
{
if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
event.returnValue=false;
}
</script><input
onkeydown="onlyNum();" style="ime-mode:Disabled>
结语,其实
style="ime-mode:Disabled
这句是比较实用的。意为关闭输入法。省得有些人开着全角输入数字,结果输入不进去来找你哭天抹泪的,还怪你设计的不好。