MVC的Model层验证(非空,手机号验证)

本文介绍在MVC项目中如何使用Model层进行用户注册验证,包括非空验证、正则表达式验证等,适用于手机号、邮箱等格式检查。

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

在用MVC做项目的时候,我们常常需要做用户登录注册的一些提示,比如手机号格式不正确,邮箱不正确,用户名不能为空等。今天先总结下在MVC的Model层中实现注册的验证。若有问题,欢迎大家指出。

第一步:添加引用

在这里插入图片描述
添加的引用为: System.ComponentModel.DataAnnotations;
一般输入dataa就出来了
在这里插入图片描述
在添加完引用之后呢,就可以往Model里面添加你想要添加的验证了
首先在Model层添加StudentViewModel类
在这里插入图片描述
然后添加引用

using System.ComponentModel.DataAnnotations;

在这里插入图片描述
在上面的

[Display(Name =“xxx”)] 是用来标明字段是什么;
[Required(ErrorMessage =“xxx不能为空”)] 非空验证;
[RegularExpression(“正则表达式”,ErrorMessage =“提示信息”)] 用来规范你想要的格式 如:手机号,邮箱等;

这样呢Model层已经完成了(可能有些乱哈);
接下来添加一个控制器
在这里插入图片描述

接下来添加AddStudent视图:
在这里插入图片描述
点击运行后,非空验证,手机号验证就完成啦(#.#)
不知道你们学会了没呀,大家一起加油呀
在这里插入图片描述

下面是些正则表达式:

验证数字:^[0-9]*$ 
验证n位的数字:^\d{n}$ 
验证至少n位数字:^\d{n,}$ 
验证m-n位的数字:^\d{m,n}$ 
验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 
验证整数和一位小数:^[0-9]+(.[1-9]{1})?$
验证非零的正整数:^\+?[1-9][0-9]*$ 
验证非零的负整数:^\-[1-9][0-9]*$ 
验证非负整数(正整数 + 0) ^\d+$ 
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$ 
验证长度为3的字符:^.{3}$ 
验证由26个英文字母组成的字符串:^[A-Za-z]+$ 
验证由26个大写英文字母组成的字符串:^[A-Z]+$ 
验证由26个小写英文字母组成的字符串:^[a-z]+$ 
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$ 
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ 
验证汉字:^[\u4e00-\u9fa5]+$ 
验证Email地址:^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 
验证身份证号(15位或18位数字):^\d{15}|\d{18}|\d{17}X$ 
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 
整数:^-?\d+$ 
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$ 
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 
浮点数 ^(-?\d+)(\.\d+)?
0-100之间的数,小数点后面最多两位^(?:(?!0\d)\d{1,2}(?:\.\d{1,2})?|100(?:\.0{1,2})?)
编写一款运行在Android的API35,以java为编程语言,使用直连MySQL 5.7数据库的方法实现仓库管理的系统,要求如下: 1、登录界面上部有“仓库管理系统”字样,使用手机号码和密码登录,有三个单选登录权限选择按键分别是:管理员、操作员、普通用户,在登录界面还需要实现记住密码的功能,只有一个登录按键,登录界面直接使用用户表(user)中的枚举类型角色判断登录的权限,勾选自动登陆才使用自动登录功能。 2、仓库管理系统的子功能包括:物品搜索、入库操作、出库操作、添加物品、删除物品、申请物品借用和审批、设置库存预警、查看行为操作记录、消息通知、数据统计、添加账号、删除账号、修改密码和个人信息。 3、子功能的说明: 物品搜索:按照物品名称、物品ID、物品类别搜索物品的全部信息。 入库操作:输入的字段包括:物品名称、物品数量、图片、详细说明、物品类别;其中物品类别只能看不能选;物品名称只能在已有名称下选择。 出库操作:输入的字段包括:物品名称、物品数量、图片、详细说明、物品类别;物品类别只能看不能选;物品名称只能在已有名称下选择。 添加物品:输入的字段包括:物品类别、物品名称、图片、详细说明、规格、单位、存放位置;物品ID由数据库自增。 删除物品:先跳转到一个搜索页面,然后根据物品ID或物品名称搜索到物品详细信息后显示全部物品信息 ,此时才能删除,删除需要确认。 申请物品借用和审批:申请物品借用和审批的流程是:首先,由普通用户提出申请;然后到操作员审核,审核通过则发送通过消息给普通用户;如操作员审核不通过则需要管理员核实申请是否合理,合理则通过并发送申请通过消息给普通用户,不合理则不通过并且发送不通过消息返回给普通用户。 设置库存预警:可以设置最低和最高库存预警;库存预警信息在消息通知中显示;低于最低库存预警时,如有出库操作先提示库存低才能操作。 查看行为操作记录:可以按用户、操作类型查找。 消息通知:接收申请物品借用和审批中的消息和通知;库存预警信息。 数据统计:按年统计消耗品类出入库报表、按月统计消耗品类出入库报表、按消耗品类统计物品数量、按固定资产类统计物品数量、按使用用户统计消耗品类出入库报表。 添加账号:管理员可以添加新用户。 删除账号:删除需要确认。 修改密码:只能修改个人账户的密码。 修改个人信息:只能修改个人账户的信息。 4、登录成功后跳转到的界面是带有底部导航栏的主界面,底部导航栏包括:首页、信息、我的。 5、底部导航栏中, 首页fragment功能有:物品搜索、入库操作、出库操作、添加物品、删除物品、申请物品借用和审批、设置库存预警; 信息fragment功能有:查看行为操作记录、接收消息和通知、数据统计; 我的fragment功能有:显示账户对应的权限名称和姓名、添加账号、删除账号、修改密码和个人信息。 6、根据角色权限隐藏部分子功能,其中 管理员拥有全部权限; 操作员拥有的权限有:物品搜索、入库操作、出库操作、添加物品、删除物品、申请物品借用和审批、设置库存预警、消息通知、修改密码和个人信息; 普通用户权限包括:物品搜索、消息通知、修改密码和个人信息、申请物品借用。 7、用户表(user)字段有:用户ID(user_id)、电话号码(phone)、密码(password)、角色(role)、姓名(name)、性别(sex)、年龄(age)、所在部门(department)、创建时间(user_create),其中角色和性别是枚举类型,登录界面直接使用角色判断登录的权限,用户ID字段是数据库自动增长类型的,在数据库中生成创建时间。 8、物品表(goods)字段有:物品ID(goods_id)、物品名称(goods_name)、规格(size)、类别(type)、单位(unit)、存放位置(place)、图片、说明(explain);其中类别用枚举类型,分别是消耗品类和固定资产类。 9、实现查看日志的功能:需要实现在:登录、入库、出库、审批、申请等重要事情时记录的功能。 10、申请物品借用和审批的流程是:首先,由普通用户提出申请;然后到操作员审核,审核通过则发送通过信息给普通用户;如操作员审核不通过则需要管理员核实申请是否合理,合理则通过,不合理则不通过并且发送不通过信息返回给普通用户。 11、在activity、controller中不实现连接MySQL数据库的操作,使用dao类代替。 12、实现连续两次返回退出APP的功能。 13、所有数据库表中ID字段都是数据库自动增长类型的。 14、入库操作、出库操作、添加物品、删除物品、申请物品借用和审批的功能需要有保存图片的功能。 15、每一行代码都要有注释。 16、数据存储和传输全部使用明文。 17、不使用switch语句,使用if代替。 18、给出界面xml和相应的java逻辑代码。 19、只要求能实现功能,代码要尽可能简单。 20、要分模块地实现功能。 21、要有明确的输入验证和错误处理。 22、数据库连接类名用MySQLHelper。 23、使用toast提示信息。 24、最后有详细的实现说明。 25、xml只使用Android原生组件实现,不使用Google组件。 26、使用MVC框架开发。 27、使用toast提示信息。 28、不允许使用AsyncTask,用handler、looper、thread、message组合代替asynctask。 29、所有子功能都使用activity实现。
03-12
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值