开源后端数据校验插件Validate.Net,类似Validate.js

  • A+
所属分类:.NET技术
摘要

  

介绍

Validate.Net将Validate.js移植到.Net平台,可以更方便、更快捷的校验实体内属性值是否合法。内置多种常规数据校验规则(校验必填、校验字符串长度区间、校验最大最小值、校验值区间、校验最大最小长度、校验长度区间、Email、邮编、url、正整数、负整数、非正整数、非负整数、ip地址、qq、身份证号码、统一社会信用代码),支持自定义正则校验、方法重写等扩展校验。是做后端开发的必备利器。

软件架构

.netframework4.5以上、反射、特性

开源后端数据校验插件Validate.Net,类似Validate.js

安装教程

1. 项目中引用:Validate.Net.dll(文件在目录Validate.NetbinRelease下); 开源后端数据校验插件Validate.Net,类似Validate.js
2. 导入命名空间:using Validate.Net;

3. gitee地址 https://gitee.com/lkings/Validate.Net

4. 后续将支持nuget安装

使用说明

实体类示例代码:

    public class UserModel     {         /// <summary>         /// 校验必填,如果添加特性[Describe],则校验该属性不合法时         /// 错误提示信息则是:属性:密码,值:xxxx, 不正确,而不是属性:Password,值:xxxx 不正确         /// </summary>         [ValidateRequired]         [Describe("密码")]         public string Password { get; set; }          /// <summary>         /// 校验字符串长度区间         /// </summary>         [ValidateRangeLength(6, 20)]         [Describe("用户账户")]         public string Account { get; set; }          /// <summary>         /// 校验字母,只能包含字母         /// </summary>         [ValidateLetter]         public string Letter { get; set; }          /// <summary>         /// 校验最大值         /// </summary>         [ValidateMaxValue(20)]         public int Age { get; set; }          /// <summary>         /// 校验最小值         /// </summary>         [ValidateMinValue(5)]         public int MinLong { get; set; }          /// <summary>         /// 校验值区间         /// </summary>         [ValidateRangeValue(10,20)]         public int AgeRange { get; set; }          /// <summary>         /// 校验最大长度         /// </summary>         [ValidateMaxLength(20)]         public string MaxLength { get; set; }          /// <summary>         /// 校验最小长度         /// </summary>         [ValidateMinLength(5)]         public string MinLength { get; set; }          /// <summary>         /// 校验Email         /// </summary>         [ValidateEmail]         public string Email { get; set; }          /// <summary>         /// 校验邮编         /// </summary>         [ValidateZipCode]         public string ZipCode { get; set; }          /// <summary>         /// 校验包含中文         /// </summary>         [ValidateChinese]         public string Chinese { get; set; }          /// <summary>         /// 校验负整数         /// </summary>         [ValidateNegtiveInt]         public int NegtiveInt { get; set; }          /// <summary>         /// 校验正整数         /// </summary>         [ValidatePositiveInt]         public int PositiveInt { get; set; }          /// <summary>         /// 校验非负整数         /// </summary>         [ValidateNonnegativeInt]         public double NonnegativeInt { get; set; }          /// <summary>         /// 校验非正整数         /// </summary>         [ValidateNonpositiveInt]         public double NonpositiveInt { get; set; }          /// <summary>         /// 校验ip地址         /// </summary>         [ValidateIp]         public string Ip { get; set; }          /// <summary>         /// 校验url         /// </summary>         [ValidateUrl]         public string url { get; set; }          /// <summary>         /// 校验qq号         /// </summary>         [ValidateQQ]         public string QQ { get; set; }          /// <summary>         /// 自定义正则校验,特性[ValidateRegular]为自定义正则表达式校验         /// 第一个参数为您的正则表达式,第二个参数为自定义校验不合法时的提示信息         /// </summary>         [ValidateRegular("^[0-9]{6}$", "邮编格式校验失败(自定义)")]         public string CustomStr { get; set; }          /// <summary>         /// 校验身份证(15位身份证号,和18位身份证号)         /// </summary>         [ValidateIDCard]         public string IDCard { get; set; }          /// <summary>         /// 校验统一社会信用代码         /// </summary>         [ValidateSocialCreditCode]         public string SocialCreditCode { get; set; }          /// <summary>         /// 一般密码校验(包含数字和字母及常规特殊符号)         /// </summary>         [ValidatePwd]         public string Pwd { get; set; }     } 

  

调用示例

    static void Main(string[] args)     {         UserModel user = new UserModel()         {             Account = "1000",             Password = "",             Email = "77111.cn",             ZipCode = "6572151",             Chinese = "wjl",             NegtiveInt = 1,             PositiveInt= -2,             Ip = "192.0.0.256",             url = "https://www.baidu.com",             CustomStr = "657215@",             MaxLength = null,             Age = 100,             Letter = "www",             MinLong = 0,             AgeRange = 0,             MinLength = "123456",             QQ = "13155654521",             IDCard = "2102111972110408721",             SocialCreditCode = "91350500611880326T",             Pwd = "wjl1345",             NonpositiveInt = -66.1,             NonnegativeInt = 66.1,         };          if (!user.Validate<UserModel>(out List<string> errorList))         {             foreach (string error in errorList)             {                 Console.WriteLine($"{error}rn");             }         }         Console.ReadLine();     }

执行结果

    属性:密码 - 值:  错误信息: 校验必填项失败

    属性:用户账户 - 值:1000  错误信息: 长度范围为:[6—20]

    属性:Age - 值:100  错误信息: 最大值为:20

    属性:MinLong - 值:0  错误信息: 最小值为:5

    属性:AgeRange - 值:0  错误信息: 值范围为:[10—20]

    属性:Email - 值:77111.cn  错误信息: 邮箱格式校验失败

    属性:ZipCode - 值:6572151  错误信息: 邮政编码格式校验失败

    属性:Chinese - 值:wjl  错误信息: 中文校验失败(必须包含中文)

    属性:NegtiveInt - 值:1  错误信息: 负整数校验失败

    属性:PositiveInt - 值:-2  错误信息: 正整数校验失败

    属性:Ip - 值:192.0.0.256  错误信息: 校验ip失败

    属性:CustomStr - 值:657215@  错误信息: 邮编格式校验失败(自定义)

    属性:IDCard - 值:2102111972110408721  错误信息: 校验身份证合法性失败

    属性:Pwd - 值:wjl1345  错误信息:  一般密码校验失败(包含数字和字母及常规特殊符号)

gitee地址