当前位置: 首页 > news >正文

input 设置只输入数字或其他自定义字符 - 指南

使用 pattern 属性限制输入

通过 pattern 属性结合正则表达式,可以限制输入框只能输入特定字符。例如,只允许输入字母和数字:

浏览器会在表单提交时验证输入是否符合正则规则,若不符合则显示 title 中的提示信息。


通过 JavaScript 动态过滤输入

监听 inputkeypress 事件,实时检查输入的字符是否符合要求。以下示例仅允许输入数字和小写字母:

document.getElementById('customInput').addEventListener('input', function(e) {
this.value = this.value.replace(/[^a-z0-9]/g, '');
});

replace(/[^a-z0-9]/g, '') 会移除所有非数字和小写字母的字符。


使用 onkeydown 阻止非法字符输入

通过拦截键盘事件,阻止用户输入非法字符。以下代码仅允许输入数字:

= 48 && event.keyCode

此方法直接阻止非数字键的默认行为,但需注意兼容性(如复制粘贴操作可能绕过限制)。


使用 onchange 过滤非法字符输入

通过拦截键盘事件,阻止用户输入非法字符。以下代码仅允许输入数字:

使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应。


使用 onkeyup 过滤非法字符输入

通过拦截键盘事件,阻止用户输入非法字符。以下代码仅允许输入数字:

使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母。


使用 oninput 过滤非法字符输入

通过拦截键盘事件,阻止用户输入非法字符。以下代码仅允许输入数字:

使用 oninput 事件,完美的解决了以上两种问题,测试暂时还没有出现其它问题。


结合 CSS 提示非法输入

通过伪类 :invalid 为非法输入提供视觉反馈:

input:invalid {
border: 2px solid red;
}

需搭配 pattern 属性使用,当输入不符合规则时自动触发样式。


注意事项

  • 前端验证不可替代后端验证,需在服务端再次校验数据。
  • 移动端输入法可能绕过 keydown 限制,建议优先使用 input 事件过滤。
  • 正则表达式需根据需求调整,例如 [A-Za-z] 仅允许字母,[0-9.] 允许数字和小数点。
http://www.zskr.cn/news/7214.html

相关文章:

  • 12-factors
  • huggingface 模型权重文件
  • P4147 玉蟾宫(悬线法)
  • 「Java EE开发指南」如何用MyEclipse开发Java EE企业应用程序?(二)
  • TENGJUN防水TYPE-C 16PIN连接器技术解析:从结构设计到认证标准的全面解读 - 实践
  • MMoE学习笔记:利用门控专家网络高效建模多任务关系
  • SpringMVC使用jasypt加密配置文件 - Commissar
  • 基于Python+Vue开发的口腔牙科预约管理系统源码+运行步骤
  • ECT-OS-JiuHuaShan 框架实现元推理,是人类文明的金种子
  • MATLAB实现连续投影算法
  • PS辉光眩光特效插件 BBTools Glow Glare 2 V2.4.3 For Photoshop
  • 深入解析:Model Context Protocol (MCP) 安全风险与攻击方式解析
  • 剑指offer-31、整数中1出现的次数
  • Centos7非LVM根分区容量不足后扩容,对调硬盘挂载/
  • 详细介绍:Vue3》》eslint Prettier husky
  • Java-Spring入门指南(十)纯Java类配备与@Configuration实战
  • TechInsights 拆解:蔚来“亚当(Adam)”超级计算机
  • 一根网线搞定远程运维,GL-RM1PE 深度体验:远程运维、装机、开机一体化的 KVM over IP - 详解
  • 在AI技术快速实现功能的时代,挖掘电子书阅读器新需求成为关键突破点
  • jtag协议处理流程 - 指南
  • 读人形机器人15未来城市
  • 解锁智能检索新境界:CriticGPT 赋能检索模型洞察人类偏好
  • US$39.99 3+1 Button Remote Key for Nissan 315Mhz FCC ID KBRASTU15 10pcs/lot
  • 编译Unity4.3.1f1
  • US$19 Smart Key Fob For Nissan Micra/Juke/Note Renault Alaska 433MHz
  • 【R课堂-电机专栏】为什么提高电机的电压时,转速会随之上升?
  • Java学习第四天
  • 在线咨询(本地实现—跟练)
  • 02020308 .NET Core核心基础组件08-结构化日志和集中日志服务
  • zookeeper的配置