2020年8月1日星期六

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

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

介绍

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

软件架构

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

安装教程

1. 项目中引用:Validate.Net.dll(文件在目录Validate.Net\bin\Release\下);2. 导入命名空间:using Validate.Net;3. gitee地址 https://gitee.com/lkings/Validate.Net4. 后续将支持nuget安装

使用说明

实体类示例代码:

    public class UserModel    {        /// <summary>        /// 校验必填        /// </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>        /// 自定义正则校验、自定义校验失败提示信息        /// </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}\r\n");            }        }        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地址

https://gitee.com/lkings/Validate.Net开源后端数据校验插件Validate.Net,类似Validate.jspatpat启明星软件FBA的优劣势分析春节回信模版尴尬!网红货代Flexport公布货量,却遭专业机构质疑产品被当成农药类下架,系统误判该如何应对?2017年春节前深圳有哪些展销会?2017年春节去哪里旅游比较好?2017年春运火车票提前多少天订票?

没有评论:

发表评论