最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中@Pattern注解常用的校驗正則表達式學習筆記

 更新時間:2022年07月06日 10:50:14   作者:ヾ顧北の涼城づ  
對于正則這個東西,對我來說一直是很懵逼的,每次用每次查,然后還是記不住,下面這篇文章主要給大家介紹了關(guān)于Java中@Pattern注解常用的校驗正則表達式學習筆記的相關(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注解常用的校驗正則表達式學習筆記的文章就介紹到這了,更多相關(guān)Java @Pattern注解校驗正則表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java簡單實現(xiàn)線程池

    Java簡單實現(xiàn)線程池

    這篇文章主要為大家詳細介紹了Java簡單實現(xiàn)線程池,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 詳解Java中Optional類的使用方法

    詳解Java中Optional類的使用方法

    Optional的作用是什么?他都有哪些方法?阿里規(guī)范點名說盡量用Optional來避免空指針,那么什么場景用Optional?本篇文章圍繞這三點來進行講解,感興趣的可以學習一下
    2022-05-05
  • Spring中Transactional注解使用的心得(推薦)

    Spring中Transactional注解使用的心得(推薦)

    這篇文章主要介紹了Spring中Transactional注解使用的心得,事務是用來控制數(shù)據(jù)的ACID特性的,用于保證數(shù)據(jù)的正確性和完整性,需要的朋友可以參考下
    2022-10-10
  • java的多線程用法編程總結(jié)

    java的多線程用法編程總結(jié)

    本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應的一些線程函數(shù)用法、概述等。
    2016-10-10
  • Java中的throws關(guān)鍵字處理異常的最佳實踐記錄

    Java中的throws關(guān)鍵字處理異常的最佳實踐記錄

    在Java編程中,異常處理是保證程序健壯性和穩(wěn)定性的重要手段,除了使用try-catch塊捕獲異常外,Java還提供了throws關(guān)鍵字,允許我們將異常拋給調(diào)用者處理,本文介紹Java中的throws關(guān)鍵字處理異常的最佳實踐記錄,感興趣的朋友一起看看吧
    2025-01-01
  • Java實現(xiàn)FIFO功能的完整代碼實踐

    Java實現(xiàn)FIFO功能的完整代碼實踐

    在軟件開發(fā)中,隊列(Queue)是一種常見的數(shù)據(jù)結(jié)構(gòu),其特點是先進先出(FIFO,First In First Out),FIFO 隊列在生產(chǎn)者-消費者模型、任務調(diào)度、緩沖區(qū)管理等場景中具有廣泛的應用,本文給大家介紹了Java實現(xiàn)FIFO功能的完整代碼實踐,需要的朋友可以參考下
    2025-03-03
  • quartz的簡單使用、SpringBoot使用和自定義數(shù)據(jù)源集成方式

    quartz的簡單使用、SpringBoot使用和自定義數(shù)據(jù)源集成方式

    這篇文章主要介紹了quartz的簡單使用、SpringBoot使用和自定義數(shù)據(jù)源集成方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-01-01
  • 解決使用redisTemplate高并發(fā)下連接池滿的問題

    解決使用redisTemplate高并發(fā)下連接池滿的問題

    這篇文章主要介紹了解決使用redisTemplate高并發(fā)下連接池滿的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Spring下Filter過濾器配置全局異常處理的詳細步驟

    Spring下Filter過濾器配置全局異常處理的詳細步驟

    這篇文章主要介紹了Spring下Filter過濾器配置全局異常處理的詳細步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 淺談mybatis主鍵生成的幾種策略

    淺談mybatis主鍵生成的幾種策略

    本文主要介紹了淺談mybatis主鍵生成策略,包括使用數(shù)據(jù)庫自增主鍵、使用UUID生成主鍵和使用MyBatis-Plus的雪花算法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-01-01

最新評論

同仁县| 措美县| 翁源县| 龙胜| 沁源县| 浮山县| 稻城县| 麻江县| 习水县| 莱芜市| 嵊州市| 芜湖市| 孟连| 黎平县| 大连市| 鞍山市| 应城市| 兴国县| 隆子县| 陇西县| 米易县| 锡林浩特市| 甘谷县| 鄂尔多斯市| 宜良县| 鄂尔多斯市| 嵊泗县| 南丹县| 马公市| 拜泉县| 方正县| 谷城县| 交口县| 达拉特旗| 德阳市| 新昌县| 大同市| 肥乡县| 萝北县| 城固县| 商洛市|