欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中@Pattern注解常用的校驗正則表達式學(xué)習(xí)筆記

 更新時間:2022年07月06日 10:50:14   作者:ヾ顧北の涼城づ  
對于正則這個東西,對我來說一直是很懵逼的,每次用每次查,然后還是記不住,下面這篇文章主要給大家介紹了關(guān)于Java中@Pattern注解常用的校驗正則表達式學(xué)習(xí)筆記的相關(guān)資料,需要的朋友可以參考下

1、 前端傳參要求

項目開發(fā)中經(jīng)常會遇到對用戶輸入內(nèi)容的限制,本篇對常用限制做一總結(jié)。如下圖所示,標識字段有嚴格命名限制,用戶輸入校驗這部分工作前端可以做,當然后端也可以通過在實體類中添加注解的方式實現(xiàn)參數(shù)校驗。其底層原理還是攔截器攔截請求,對帶有相關(guān)注解的屬性字段進行處理(非空、大小、長度、內(nèi)容等判斷和驗證)

實體類中代碼如下:

/**
* 公司名稱
*/
@Pattern(regexp="^[\u4e00-\u9fa5_a-zA-Z0-9]+$",message="公司名稱只能輸入中文字符 字母、數(shù)字")
		@ApiModelProperty(value = "公司名稱")
		private String name;

有時系統(tǒng)對用戶名的命名有更多要求,比如用戶名必須要有一個小寫字母,一個大寫字母和一個數(shù)字,并且是6-20位,正則表達式如下:

   @Pattern(regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[A-Za-z0-9]{6,20}$", message = "用戶名錯誤")

2、其他常用正則表達式

2.1 數(shù)字校驗

1 整數(shù)或者小數(shù):"^[0-9]+\.{0,1}[0-9]{0,2}$"
2 只能輸入數(shù)字:"^[0-9]*$"
3 只能輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"
4 只能輸入有兩位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{2})?$"
5 只能輸入有1~3位小數(shù)的正實數(shù):"^[0-9]+(.[0-9]{1,3})?$"
6 只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"
7 只能輸入非零的負整數(shù):"^^-[1-9]+[0-9]*$"

2.2 字符串校驗

只能輸入長度為3的字符:"^.{3}$"。
只能輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"
只能輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"
只能輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"
只能輸入由數(shù)字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"
只能輸入由數(shù)字、26個英文字母或者下劃線組成的字符串:"^\w+$"

2.3 月份時間校驗

驗證一年的12個月:"^(0?[1-9]|1[0-2])$"    //格式為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"  //格式為;"01"~"09"和"1"~"31"。

2.4 Email校驗

   由于各種域名郵箱的多樣性,需要特殊情況特殊對待,限制可以做的嚴格也可以寬松
舉例:zhangsan_123@cetc.com.cn

分析郵件名稱部分:
   字母和數(shù)字表示為A-Za-z0-9 
   下劃線表示為_
   中劃線表示為-
   由于名稱是由若干個字母、數(shù)字、下劃線和中劃線組成,所以需要用到+表示多次出現(xiàn)
?  通過分析得出郵件名稱部分表達式為[a-zA-Z0-9_-]+

分析域名部分:
?  一般域名的規(guī)律為“[N級域名][三級域名.]二級域名.頂級域名”,比如"qq.com"、"www.qq.com"、"mp.weixin.qq.com"、"12-34.com.cn",分析可得域名類似"** .** .** .**"組成。
   "**"部分可以表示為[a-zA-Z0-9_-]+
   ".**"部分可以表示為\.[a-zA-Z0-9_-]+
   多個".**"可以表示為(\.[a-zA-Z0-9_-]+)+
?  綜上所述,域名部分可以表示為[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+
?  
最終表達式: 
?我們用@符號將郵箱的名稱和域名拼接起來,因此完整的郵箱表達式為 
??^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

驗證Email: "^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"

2.5 漢字校驗

只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"

匹配中文字符的正則表達式:"[\u4e00-\u9fa5]"

2.5 聯(lián)系電話校驗

聯(lián)系電話:@Pattern(regexp = "^[\\d\\*]{7,12}$", message = "聯(lián)系電話輸入有誤")
由于區(qū)號分為3位和四位的,然后座機號碼又分為7位和8位的,所以這里校驗的長度是7-12位,并且這里添加了*表示脫敏的手機號仍然可以通過校驗。

2.5 密碼校驗

密碼:長度為6-32位,并且必須包含數(shù)字、字母、特殊符號中的至少兩種:
@Pattern(regexp = "^(?=.*[a-zA-Z0-9].*)(?=.*[a-zA-Z.!@#$%^&*].*)(?=.*[0-9.!@#$%^&*].*).{6,32}$", message = "密碼至少包含數(shù)字,字母和符號的兩種")

總結(jié)

到此這篇關(guān)于Java中@Pattern注解常用的校驗正則表達式學(xué)習(xí)筆記的文章就介紹到這了,更多相關(guān)Java @Pattern注解校驗正則表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringRetry重試機制之@Retryable注解與重試策略詳解

    SpringRetry重試機制之@Retryable注解與重試策略詳解

    本文將詳細介紹SpringRetry的重試機制,特別是@Retryable注解的使用及各種重試策略的配置,幫助開發(fā)者構(gòu)建更加健壯的應(yīng)用程序,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java責任鏈模式模板代碼分享

    Java責任鏈模式模板代碼分享

    這篇文章主要介紹了Java責任鏈模式模板代碼分享,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Spring?Cloud?Hystrix的基本用法大全

    Spring?Cloud?Hystrix的基本用法大全

    這篇文章主要介紹了Spring?Cloud?Hyxtrix的基本使用,它是Spring Cloud中集成的一個組件,在整個生態(tài)中主要為我們提供服務(wù)隔離,服務(wù)熔斷,服務(wù)降級功能,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Springboot集成Jasypt實現(xiàn)配置文件加密的方法

    Springboot集成Jasypt實現(xiàn)配置文件加密的方法

    Jasypt是一個java庫,它允許開發(fā)員以最少的努力為他/她的項目添加基本的加密功能,并且不需要對加密工作原理有深入的了解,這篇文章主要介紹了Springboot集成Jasypt實現(xiàn)配置文件加密,需要的朋友可以參考下
    2023-04-04
  • 淺談java中HashMap鍵的比較方式

    淺談java中HashMap鍵的比較方式

    今天帶大家了解一下java中HashMap鍵的比較方式,文中有非常詳細的解釋說明及代碼示例,對正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • MybatisPlus使用排序查詢時將null值放到最后

    MybatisPlus使用排序查詢時將null值放到最后

    按照更新時間排序,但是更新時間可能為null,因此將null的數(shù)據(jù)放到最后,本文主要介紹了MybatisPlus使用排序查詢時將null值放到最后,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • MyBatis中如何接收String類型的參數(shù)實現(xiàn)

    MyBatis中如何接收String類型的參數(shù)實現(xiàn)

    這篇文章主要介紹了MyBatis中如何接收String類型的參數(shù)實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • java構(gòu)建Stream流的多種方式總結(jié)

    java構(gòu)建Stream流的多種方式總結(jié)

    Java?8引入了Stream流作為一項新的特性,它是用來處理集合數(shù)據(jù)的一種函數(shù)式編程方式,本文為大家整理了多種java構(gòu)建Stream流的方式,希望對大家有所幫助
    2023-11-11
  • 設(shè)置JavaScript自動提示-Eclipse/MyEclipse

    設(shè)置JavaScript自動提示-Eclipse/MyEclipse

    自動提示需要2個組件,分別是:ext-4.0.2a.jsb2||spket-1.6.16.jar,需要的朋友可以參考下
    2016-05-05
  • Java中常用的設(shè)計模式之單例模式詳解

    Java中常用的設(shè)計模式之單例模式詳解

    這篇文章主要為大家詳細介紹了Java中常用的設(shè)計模式之單例模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論