Validate.Net

# Validate.Net

#### 介紹

Validate.Net將Validate.js移植到.Net平臺,能夠更方便、更快捷的校驗實體內屬性值是否合法。
內置多種常規數據校驗規則(校驗必填、校驗字符串長度區間、校驗最大最小值、校驗值區間、校驗最大最小長度、校驗長度區間、
Email、郵編、url、正整數、負整數、非正整數、非負整數、ip地址、qq、身份證號碼、統一社會信用代碼
),支持自定義正則校驗、方法重寫等擴展校驗。是作後端開發的必備利器。

#### 軟件架構

ef4.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地址

本站公眾號
   歡迎關注本站公眾號,獲取更多信息