Input输入框的验证

本文详细探讨了前端开发中对Input输入框进行验证的技术要点,包括基本的正则表达式验证、表单校验、以及如何利用HTML5内置验证功能提高用户体验。同时,还介绍了使用JavaScript和第三方库实现复杂验证逻辑的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 

这句是比较实用的。意为关闭输入法。省得有些人开着全角输入数字,结果输入不进去来找你哭天抹泪的,还怪你设计的不好。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值