H5利用pattern属性和oninvalid属性验证表单
HTML代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <form action="demo-form.php"> 手机号: <input type="text" name="phone" maxlength="11" pattern="^(0|86|17951)?1[0-9]{10}" oninvalid="setCustomValidity('请输入11位手机号');"/> <br> <input type="submit"> </form> </body> </html>
运行结果
TIP:这里只写了手机号码的验证,用作示例,若需要验证其它东西,只需在pattern属性里写对应的正则表达式即可。也可以使用input类型里除了text的其它类型来做验证,比如
<input type="email"> <input type="number">
属性解释
- pattern:属性规定用于验证输入字段的正则表达式。
- oninvalid:提交的input元素的值为无效值时(这里是正则验证失败),触发oninvalid事件。oninvalid属于Form 事件。
- setCustomValidity():这个是HTML5内置的JS方法,用来自定义提示信息
- maxlength:限定input最大输入长度
其它属性
- required:增加一个非空验证。ps——我这里有正则就没写
- oninput:该事件在 input 或 textarea 元素的值发生改变时触发。
总结
- 优点:简单方便。
- 缺点:提示的UI不是太漂亮,无法做多个验证,必须表单提交才能验证(即ajax无效)。
- 建议:在要求比较简单的时候可以考虑使用H5验证表单,也可以使用内置JS函数加各种事件自定义一个验证函数,不过这样不仅兼容是个问题,而且还麻烦,倒不如直接使用JQ插件验证
在线测试工具
这里我测试是用的菜鸟教程在线工具,点击旁边的菜鸟工具会进入到这个页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)