介绍

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.Net

4. 后续将支持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地址

开源后端数据校验插件Validate.Net,类似Validate.js的更多相关文章

  1. js数据校验插件

    //数据校验 /** *{type:"类型",notEmpty:true,regxp: reg,MaxLength: number,MinLength number,message ...

  2. Golang使用validator进行数据校验及自定义翻译器

    Golang使用validator进行数据校验及自定义翻译器 包下载:go get github.com/go-playground/validator/v10 一.概述 在接口开发经常会遇到一个问题 ...

  3. 第六章、Struts2数据校验

    一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...

  4. 06章 Struts2数据校验

    一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...

  5. struts2数据校验与国际化

    数据校验: Action里的validate()方法能校验action类所有的方法,如果有错,如:addFieldError,会自动返回到workflow校验拦截器不向下继续进行,不用return i ...

  6. struts2:数据校验,通过Action中的validate()方法实现校验,图解

    根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Valid ...

  7. struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)

    前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...

  8. Struts2中validate数据校验的两种常用方法

    本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器.  1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...

  9. springboot使用validation 插件做数据校验

    不多说废话. 首先,我们需要在入参实体对象中,使用注解,控制 @Datapublic class UpdateShufflingRequest { private String shuffling_l ...

随机推荐

  1. Disruptor 高性能并发框架二次封装

    Disruptor是一款java高性能无锁并发处理框架.和JDK中的BlockingQueue有相似处,但是它的处理速度非常快!!!号称“一个线程一秒钟可以处理600W个订单”(反正渣渣电脑是没体会到 ...

  2. php批量 下载图片

    <?php set_time_limit(0); $file = fopen("index.csv",'r');$temp = [];$i=0;$firstsku='';wh ...

  3. Qt_Demo3:实现棋盘

    1  简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=53 说明:实现一个8*8的棋盘,点击棋盘的任意位置显示一个表情,并打印出当前的坐标( ...

  4. Jsonp处理跨域请求

    Jsonp的使用需要前端和后端共同配合来完成 服务端设置(ASP.NET MVC实现): 在将返回的Json数据包在一个方法名称的内部,如上 客户端设置: 同时要加上一个回调函数用于处理请求的数据 在 ...

  5. vscode切换虚拟环境报错无法加载文件 E:\Python_project\shop_env\Scripts\Activate.ps1,因为在此系统上禁止运行 脚本。

    在使用vscode切换python的虚拟环境时报错 解决方法如下: Windows+x打开面板,选择以管理员身份运行PowerShell,输入: set-executionpolicy remotes ...

  6. 互联网的寒冬下各大一线互联网公司还在用SpringBoot这是为什么?

    引言 现在各大技术社区 Spring Boot 的文章越来越多,Spring Boot 相关的图文.视频教程越来越多,使用 Spring Boot 的互联网公司也越来越多: Java 程序员现在出去面 ...

  7. Ethical Hacking - Web Penetration Testing(13)

    OWASP ZAP(ZED ATTACK PROXY) Automatically find vulnerabilities in web applications. Free and easy to ...

  8. C++ RMQ问题

    RMQ问题是区间求最值问题,就是求一个数组第i个到第j个中最大数或最小数的算法. 这个算法有一些倍增思想,也有一些二分思想.具体是一个数组,m[i][j]表示从i开始往后数2的j次方个数的最大值或最小 ...

  9. OA系统从选型到实施完整攻略

    本文结合一线IT人士分享OA实施经验,单纯地讲述OA的选型与实施,为相关经验较少的IT人士提供真正的帮助. 一.如何选择OA系统 说起OA选型,稳定性.易用性.灵活性.成本和服务少不了.但是,只了解这 ...

  10. Windows File Recovery - 微软官方文件恢复工具

    假如你不小心误删除了文件或因各种意外情况丢失数据后,你可以通过 微软这款工具 这个工具来尝试恢复它们.WinFR 工具支持读取本机硬盘.移动硬盘.U 盘,或者连接相机.手机.使用读卡器来恢复 SD.T ...