開源后端數據校驗插件Validate.Net,類似Validate.js


介紹

Validate.Net是借助Validate.js的思想開發的一套.Net服務端數據校驗插件,可以更方便高效的校驗實體內的屬性值是否合法。內置多種常規數據校驗規則(必填、字符串長度區間、字符串最大最小長度、最大最小值、值區間、Email、郵編、url、正整數、負整數、非正整數、非負整數、ip地址、qq、身份證號碼、統一社會信用代碼,常規密碼)。支持自定義正則校驗、方法重寫等擴展校驗。是做后端開發的必備利器。

軟件架構

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

安裝教程

1. 項目中引用:Validate.Net.dll(文件在目錄Validate.Net\bin\Release\下); 
  點擊下載該Validate.Net.dll 提取碼 nloo
2. 導入命名空間:using Validate.Net;
3. gitee地址  https://gitee.com/lkings/Validate.Net
4. 后續將支持nuget安裝

使用說明

實體類示例代碼

  1 public class UserModel
  2 {
  3     /// <summary>
  4     /// 校驗必填,如果添加特性[Describe],則校驗該屬性不合法時
  5     /// 錯誤提示信息則是:屬性:密碼,值:xxxx, 不正確,而不是屬性:Password,值:xxxx 不正確
  6     /// </summary>
  7     [ValidateRequired]
  8     [Describe("密碼")]
  9     public string Password { get; set; }
 10  
 11     /// <summary>
 12     /// 校驗字符串長度區間
 13     /// </summary>
 14     [ValidateRangeLength(6, 20)]
 15     [Describe("用戶賬戶")]
 16     public string Account { get; set; }
 17  
 18     /// <summary>
 19     /// 校驗字母,只能包含字母
 20     /// </summary>
 21     [ValidateLetter]
 22     public string Letter { get; set; }
 23  
 24     /// <summary>
 25     /// 校驗最大值
 26     /// </summary>
 27     [ValidateMaxValue(20)]
 28     public int Age { get; set; }
 29  
 30     /// <summary>
 31     /// 校驗最小值
 32     /// </summary>
 33     [ValidateMinValue(5)]
 34     public int MinLong { get; set; }
 35  
 36     /// <summary>
 37     /// 校驗值區間
 38     /// </summary>
 39     [ValidateRangeValue(10,20)]
 40     public int AgeRange { get; set; }
 41  
 42     /// <summary>
 43     /// 校驗最大長度
 44     /// </summary>
 45     [ValidateMaxLength(20)]
 46     public string MaxLength { get; set; }
 47  
 48     /// <summary>
 49     /// 校驗最小長度
 50     /// </summary>
 51     [ValidateMinLength(5)]
 52     public string MinLength { get; set; }
 53  
 54     /// <summary>
 55     /// 校驗Email
 56     /// </summary>
 57     [ValidateEmail]
 58     public string Email { get; set; }
 59  
 60     /// <summary>
 61     /// 校驗郵編
 62     /// </summary>
 63     [ValidateZipCode]
 64     public string ZipCode { get; set; }
 65  
 66     /// <summary>
 67     /// 校驗包含中文
 68     /// </summary>
 69     [ValidateChinese]
 70     public string Chinese { get; set; }
 71  
 72     /// <summary>
 73     /// 校驗負整數
 74     /// </summary>
 75     [ValidateNegtiveInt]
 76     public int NegtiveInt { get; set; }
 77  
 78     /// <summary>
 79     /// 校驗正整數
 80     /// </summary>
 81     [ValidatePositiveInt]
 82     public int PositiveInt { get; set; }
 83  
 84     /// <summary>
 85     /// 校驗非負整數
 86     /// </summary>
 87     [ValidateNonnegativeInt]
 88     public double NonnegativeInt { get; set; }
 89  
 90     /// <summary>
 91     /// 校驗非正整數
 92     /// </summary>
 93     [ValidateNonpositiveInt]
 94     public double NonpositiveInt { get; set; }
 95  
 96     /// <summary>
 97     /// 校驗ip地址
 98     /// </summary>
 99     [ValidateIp]
100     public string Ip { get; set; }
101  
102     /// <summary>
103     /// 校驗url
104     /// </summary>
105     [ValidateUrl]
106     public string url { get; set; }
107  
108     /// <summary>
109     /// 校驗qq號
110     /// </summary>
111     [ValidateQQ]
112     public string QQ { get; set; }
113  
114     /// <summary>
115     /// 自定義正則校驗,特性[ValidateRegular]為自定義正則表達式校驗
116     /// 第一個參數為您的正則表達式,第二個參數為自定義校驗不合法時的提示信息
117     /// </summary>
118     [ValidateRegular("^[0-9]{6}$", "郵編格式校驗失敗(自定義)")]
119     public string CustomStr { get; set; }
120  
121     /// <summary>
122     /// 校驗身份證(15位身份證號,和18位身份證號)
123     /// </summary>
124     [ValidateIDCard]
125     public string IDCard { get; set; }
126  
127     /// <summary>
128     /// 校驗統一社會信用代碼
129     /// </summary>
130     [ValidateSocialCreditCode]
131     public string SocialCreditCode { get; set; }
132  
133     /// <summary>
134     /// 一般密碼校驗(包含數字和字母及常規特殊符號)
135     /// </summary>
136     [ValidatePwd]
137     public string Pwd { get; set; }
138 }

調用示例

 1     static void Main(string[] args)
 2     {
 3         UserModel user = new UserModel()
 4         {
 5             Account = "1000",
 6             Password = "",
 7             Email = "77111.cn",
 8             ZipCode = "6572151",
 9             Chinese = "wjl",
10             NegtiveInt = 1,
11             PositiveInt= -2,
12             Ip = "192.0.0.256",
13             url = "https://www.baidu.com",
14             CustomStr = "657215@",
15             MaxLength = null,
16             Age = 100,
17             Letter = "www",
18             MinLong = 0,
19             AgeRange = 0,
20             MinLength = "123456",
21             QQ = "13155654521",
22             IDCard = "2102111972110408721",
23             SocialCreditCode = "91350500611880326T",
24             Pwd = "wjl1345",
25             NonpositiveInt = -66.1,
26             NonnegativeInt = 66.1,
27         };
28 
29         if (!user.Validate<UserModel>(out List<string> errorList))
30         {
31             foreach (string error in errorList)
32             {
33                 Console.WriteLine($"{error}\r\n");
34             }
35         }
36         Console.ReadLine();
37     }

執行結果

    屬性:密碼 - 值:  錯誤信息: 校驗必填項失敗

    屬性:用戶賬戶 - 值: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地址

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM