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

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

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

1、 前端傳參要求

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

實(shí)體類中代碼如下:

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

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

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

2、其他常用正則表達(dá)式

2.1 數(shù)字校驗(yàn)

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í)數(shù):"^[0-9]+(.[0-9]{2})?$"
5 只能輸入有1~3位小數(shù)的正實(shí)數(shù):"^[0-9]+(.[0-9]{1,3})?$"
6 只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"
7 只能輸入非零的負(fù)整數(shù):"^^-[1-9]+[0-9]*$"

2.2 字符串校驗(yàn)

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

2.3 月份時(shí)間校驗(yàn)

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

2.4 Email校驗(yàn)

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

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

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

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

2.5 漢字校驗(yàn)

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

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

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

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

2.5 密碼校驗(yàn)

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

總結(jié)

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

相關(guān)文章

  • SpringRetry重試機(jī)制之@Retryable注解與重試策略詳解

    SpringRetry重試機(jī)制之@Retryable注解與重試策略詳解

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

    Java責(zé)任鏈模式模板代碼分享

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

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

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

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

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

    淺談java中HashMap鍵的比較方式

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

    MybatisPlus使用排序查詢時(shí)將null值放到最后

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

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

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

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

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

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

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

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

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

最新評(píng)論