asp.net mvc3 数据验证(三)—自定义数据注解
来源:互联网 发布:jquery ajax传递json 编辑:程序博客网 时间:2024/06/08 02:01
public class MyMaxLengthAttribute : ValidationAttribute { private readonly int MaxLength; public MyMaxLengthAttribute(int maxLength) { MaxLength = maxLength; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { string content = value.ToString(); if (content.Length > MaxLength) { return new ValidationResult("输入的字符太多了!^_^"); } return ValidationResult.Success; //return base.IsValid(value, validationContext); }
[Required(ErrorMessageResourceType=typeof(ErrorMessage),ErrorMessageResourceName="UserRequire")] [Display(Name = "用户名")] [MyMaxLengthAttribute(10)] [Remote("CheckUserName","Account", HttpMethod="POST")] public string UserName { get; set; }
[Required(ErrorMessageResourceType=typeof(ErrorMessage),ErrorMessageResourceName="UserRequire")] [Display(Name = "用户名")] [MyMaxLengthAttribute(10,ErrorMessage="{0}字数太多")] [Remote("CheckUserName","Account", HttpMethod="POST")] public string UserName { get; set; }
public class MyMaxLengthAttribute : ValidationAttribute { private readonly int MaxLength; public MyMaxLengthAttribute(int maxLength ):base("{0}的字符太多了!") { MaxLength = maxLength; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { string content = value.ToString(); if (content.Length > MaxLength) { //return new ValidationResult("输入的字符太多了!^_^"); string errorMessage = FormatErrorMessage(validationContext.DisplayName); return new ValidationResult(errorMessage); } return ValidationResult.Success; //return base.IsValid(value, validationContext); } }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContent) { if (Password != ConfirmPassword) { yield return new ValidationResult("两次输入的密码不同!", new[] { "Password" }); } }
最后附上常用正则表达式
数字:"^[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"。
- asp.net mvc3 数据验证(三)—自定义数据注解
- asp.net mvc3 数据验证(三)—自定义数据注解
- asp.net mvc3 数据验证(三)—自定义数据注解
- asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化
- asp.net mvc3 的数据验证(一)
- asp.net mvc3 的数据验证(一)
- ASP.NET MVC3书店--第六节 使用注解来进行数据验证
- ASP.NET MVC3 入门指南之数据验证
- ASP.NET MVC3 入门指南之数据验证
- ASP.NET MVC3入门教程之参数(数据)传递
- spring数据验证----自定义注解
- 自定义注解做数据验证
- ASP.NET MVC3 中使用IValidatableObject接口实现Model数据验证
- 一天学会MVC3之模型验证中的数据注解
- ASP.NET MVC3 实例(三) 使用 Controller 进行数据的的查询
- ASP.NET MVC3 实例(三) 使用 Controller 进行数据的的查询
- ASP.NET MVC3 实例(三) 使用 Controller 进行数据的的查询
- ASP.NET MVC3 权限验证
- JDBC连接Mysql并统计指定关键词在某一列中出现的次数
- ubuntu系统下如何禁用笔记本触摸板。
- sphinx 配置文件全解析
- asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化
- python 笔记---set
- asp.net mvc3 数据验证(三)—自定义数据注解
- QT内label控件通过opencv显示图像
- django models choices添加选项
- opencv学习--图像拼接之 Stitcher
- 安装python Matplotlib 库
- 如何清除任务栏中自定义通知里的图标
- KMP中next数组的理解
- davinci 学习大纲
- 关于电子元件的申请问题讨论