当前位置: 代码迷 >> 综合 >> 正则表达式(22)——Attribute标记(3)——练习:正则表达式校验Attribute
  详细解决方案

正则表达式(22)——Attribute标记(3)——练习:正则表达式校验Attribute

热度:84   发布时间:2023-10-01 18:49:06.0

编写正则表达式验证器,在属性上根据需要添加RegexValidatorAttribute。这种用法在ASP.Net MVC中用的非常多。

class Customer
{[RegexValidator(@"^\S+@\S+$")]public string Email{get;set;}[RegexValidator(@"^\d{6}$")]public string Postcode{get;set;}[RegexValidator(@"^\d{15}$|^\d{18}$")]public string IdNumber{get;set;}
}

编写Validate方法,在Validate方法中会对标记了RegexValidator的属性采用指定的正则表达式进行数据校验。步骤:

1、开发RegexValidatorAttribute,提供保存正则表达式的Pattern属性,以及一个接受正则表达式的构造函数。用AttributeUsage标记RegexValidatorAttribute只能添加到属性上。

2、 Validate方法中取得obj对应的Type对象,遍历type.GetProperties()所有属性,如果属性是string类型,并且定义了RegexValidator,取得RegexValidator对象,读取对象的Pattern对象多和正则表达式。

3、获得属性的值string value = prop.GetValue(obj, null) as string,用正则表达式进行校验。

4、写一个“ASP.Net”WinForm程序“表单生成器”,browser.DocumentText= html

browser.DocumentText= html[TableName("T_Persons")]class Person{[ColumnName("FName")]public string Name { get; set; }[ColumnName("FAge")]  public int Age { get; set; }}NHibernatePerson p1 =......;db.Insert(p1);

5、带数据校验Attribute。