MVC自验证和正则验证attributes
来源:互联网 发布:巨无霸指数现实的数据 编辑:程序博客网 时间:2024/05/05 10:56
在使用MVC框架时,其Model层自带了验证,可以使我们省去自己写一大堆的js数据验证代码,或者后台代码。我们仅仅需求给model加上Model类的各属性加上对应的验证标识表记标帜(Attributes)就可以让MVC3框架帮我们完成验证;当然这自带的验证也是在前端完成的,这样避免了不必要的服务器响应以及对对服务器资源的占用,这里自然是需要js脚本的支持的。MVC自带验证基于jquery.所以前台还是要引入jquery:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script><script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
验证消息的显示有两种,一种是ValidationSummary,它可以显示一份验证消息的汇总,包含从后台Action里返回的消息。
@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
另一种是Model中各属性对应HTML控件的验证消息:
@Html.ValidationMessageFor(m => m.UserName);
附上几个常用的验证标识表记标帜(Attributes)
1. 必填字段
[Required]
2. 字段长度
至多n位:
[StringLength(160)]
请求至少n位:
[StringLength(160, MinimumLength=3)]
3.正则验证
[RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/.[A-Za-z]{2,4}”)]
4. 局限
[Range(35,44)]
小数的景象:
[Range(typeof(decimal), “0.00”, “49.99”)]
这里面最让我无语的就是正则验证,由于之前很少使用正则验证,导致在定义一个属性要去掉特殊字符时,纠结了半天,从头到尾看了一遍正则的语法才弄出来;
先贴上字段属性去掉特殊字符的正则代码:
[Required(AllowEmptyStrings = false, ErrorMessage = "项目名称不能为空")] [StringLength(20, ErrorMessage = "项目名称长度在2-20之间", MinimumLength = 2)] [Display(Name = "项目名称")] [RegularExpression(@"[^':;\^\*\?@\!#\$%&\+=\{\}\[\]<>\,\.\【\】\《\》\。\-\-\|]+", ErrorMessage = "{0}不能有特殊字符")] public string ProjectName { get; set; }
这里的正则代码解释下,这个正则代码去掉了: ^':;*?@!#$%&+={}[]<>,.【】《》。--|这些常见的特殊字符;
"[^]"这个表示匹配任何不含有^后面带有的字符。
由于正则表达式的语法规则好多的就是这些特殊字符,所以要匹配这些字符,必须把这些字符转义,否则正则分析器会把特殊字符当成语法执行,这也就是为什么这个表达式中出现了很多的“\”,这个“\"就是正则里面的转义符。
这里有个过程需要注意的是,像这些中文的符合,他不是正则语法关键字符,但是也要使用转义符把他转义掉,否则也会出现你想不到的情况。
总语:尼玛,正则还是要自己看他的语法规则写,网上的都是别人特定的业务需求。最好自己写;
以下摘自百度百科:
附上正则表达式的关键字含义和语法:
再附录上一些常见的正则表达式:
摘抄自网络
数字:"^[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})?¥"。
非零的正整数:"^/+?[1-9][0-9]*¥"。
非零的负整数:"^/-[1-9][]0-9"*¥。
长度为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]{0,}¥"
验证Email地址:"^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*¥"。
验证InternetURL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?¥"。
验证德律风号码:"^(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}¥"正确格局为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^/d{15}|/d{18}¥"。
验证一年的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"。
- MVC自验证和正则验证attributes
- MVC自带验证
- mvc 自带验证使用
- MVC数据验证--用户名和密码验证
- C#MVC中自带验证
- C# 身份证号码验证正则和验证函数
- mvc 模型验证及正则表达式
- 有用的正则验证,转自互联网
- MVC验证
- MVC验证
- mvc验证
- mvc验证
- 验证手机和股票代码正则
- 验证邮箱和正则表达式
- 验证邮箱和正则表达式
- 正则表达式语法和验证
- 正则表达式和数字验证
- 正则验证手机号和电话号码
- mysql数据库备份与恢复命令
- pig 是什么?
- hdu2044 一只小蜜蜂... (菲波那切数列)
- 在Chrome官网下载离线安装包
- [SSO]Java实现简单的单点登录
- MVC自验证和正则验证attributes
- 【Mongodb】3.0 配置身份验证db.createUser()说明
- android开发之蓝牙配对连接的方法
- 在Linux下面安装OpenLDAP
- APK程序Dex文件无源码调试方法讨论
- Mondrian 如何使用XML存储OLAP服务器的元数据
- LinkedList的用法小结
- 数独游戏
- DOTA轮播