Java项目实战第2天:表单校验 表单校验规则
yuyutoo 2024-11-14 19:53 3 浏览 0 评论
今天是刘小爱自学Java的第101天。
感谢你的观看,谢谢你。
话不多说,开始今天的学习:
一般来说绝大多数网站都会有用户注册、用户登录这些基本的功能。
那么用户注册具体是如何实现的呢?
这两天就主要学习注册的业务逻辑是如何写出来的。
先做一个简单的业务分析:
注册是用户在填写自己的相关信息,所以其本质上是在数据库中添加数据。
浏览器提交请求访问服务器,服务器去数据库查询数据判断用户注册是否成功:
- 成功:发送邮件并跳转对应页面,同时将用户提交的数据添加到数据库中。
- 失败:比如说用户名已经存在,需要提示用户注册失败的原因。
画个小图做一个说明:
以上就是一个基本的注册业务逻辑。
当然该方法是从后台检验用户提交的数据是否正确,事实上在前端中也能先进行校验。
一、表单前端校验
前端校验能起到优先判断的作用,阻止了很多不必要的请求,比如说:
- 用户名为空的时候,不能直接提交。
- 邮箱是有格式的,不能乱填。
- 手机号也有对应的格式,不能乱填。
如果用户填写的数据不满足对应的格式,无法提交请求,这样也能节省更多资源。
所以前后端各自分工明确:
- 前端校验数据的完整性与合法性。
- 后台校验数据的唯一性。
而如何进行前端校验呢?
使用jQuery表单校验工具validate即可:
①表单校验工具validate
引入 jquery.validate.js 之后,就可以使用该工具了。
registerForm是我项目中注册表单对应的id,通过id选择器可以选择注册表单,从而进一步校验。
②表单校验规则
rules即可以定义表单的校验规则。
- username和email:对应了表单中的属性。
- required:表示该属性对应的值不能为空。
- email:表示邮箱对应的校验规则。
当然表单中的属性不止这两个,都需要校验。
我只是以这两个作为例子,不然属性太多,截图放不下,代码编写其实都是大同小异的。
③自定义报错信息
如果不自定义信息,错误信息是英文的,所以使用messages将错误信息设置成对应的中文字符串。
二、自定义校验规则
上述都是插件validate自带的校验规则,但是有些需要我们自定义。
比如说电话号码各个国家不一样,所以就需要自定义一个校验规则。
代码的编写都是差不多的,只不过加入了自定义的判断逻辑。
①自定义校验规则
我这边自定义的名称为phoneFmt,后面的参数为:true。
也就是说需要满足对应的校验要求,不然会出现错误提示信息。
②addMethod方法
使用该方法可以实现具体的校验逻辑,其有三个参数:
- 校验规则名:也就是和①中的名称相对应。
- 一个函数:也就是具体校验逻辑。
- “手机号不合法”:也就是错误信息。
其中第二个参数,函数也有三个参数:
- value:被校验的文本框的value值,这里指用户在电话栏里填入的数据。
- element:被校验规则的文本框,这里是指整个telephone标签。
- params:接受校验规则参数,这里是指①中后面的true。
③具体校验逻辑
new RegExp()表示创建一个对应的正则匹配规则。
关于正则表达式,想要完全把它记下来是很难的,所以很多时候需要借助于网络查询。
不过就算网络上的资源有很多,但是也要能看得懂,查询资料如下:
该资料创建正则表达式的方式,是使用两个斜杠将具体的匹配规则包裹起来:/ /
而我一开始使用的是new RegExp(),这两种方式都可以。
而"^1[34578]\d{9}#34;这个表示的是什么意思呢?
- 1:表示的是第1个数字必须为1。
- [34578]:表示的是第2个数字必须得是34578中的一个。
- d{9}$:表示的是还有9个数字,可以是任意数。
加起来一共11个数字,也正是我们国家手机号码的长度。
以上就是自定义校验规则的代码编写。
事实上多个页面都需要该规则,比如注册页面需要,登录页面也需要。
既然如此,将其封装到一个js文件中,哪个页面需要使用该校验规则,引入js文件就好了:
上述便是对自定义校验规则的封装,有点类似于Java代码中工具类的封装。
最后
因为遇到了一个bug未解决,导致这两天学习效率有点低,希望自己能早日调整过来。
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
相关推荐
- 史上最全的浏览器兼容性问题和解决方案
-
微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...
-
- 平面设计基础知识_平面设计基础知识实验收获与总结
-
CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...
-
2025-02-21 16:01 yuyutoo
- 写作排版简单三步就行-工具篇_作文排版模板
-
和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...
- 写一个2048的游戏_2048小游戏功能实现
-
1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...
- 今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……
-
最近的天气暖和得让很多小伙伴们喊“热”!!! 昨天的气温到底升得有多高呢?你家有没有榜上有名?...
- CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
-
之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...
- 你的自我界限够强大吗?_你的自我界限够强大吗英文
-
我的结果:A、该设立新的界限...
- 行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?
-
行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...
-
- 让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
-
去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...
-
2025-02-21 16:00 yuyutoo
- 今年国家综合性消防救援队伍计划招录消防员15000名
-
记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...
- 一起盘点最新 Chrome v133 的5大主流特性 ?
-
1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...
- 竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使
-
style="text-align:center;"data-mce-style="text-align:...
- 学物理能做什么?_学物理能做什么 卢昌海
-
作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...
-
- 你不知道的关于这只眯眼兔的6个小秘密
-
在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...
-
2025-02-21 16:00 yuyutoo
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)