Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記_第1頁
Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記_第2頁
Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記_第3頁
Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記目錄1、前端傳參要求2、其他常用正則表達(dá)式2.1數(shù)字校驗(yàn)2.2字符串校驗(yàn)2.3月份時(shí)間校驗(yàn)2.4Email校驗(yàn)2.5漢字校驗(yàn)2.5聯(lián)系電話校驗(yàn)2.5密碼校驗(yàn)總結(jié)

1、前端傳參要求

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

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

/**

*公司名稱

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

@ApiModelProperty(value="公司名稱")

privateStringname;

有時(shí)系統(tǒng)對用戶名的命名有更多要求,比如用戶名必須要有一個(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])$"http://格式為:"01"~"09"和"1"~"12"。

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

2.4Email校驗(yàn)

由于各種域名郵箱的多樣性,需要特殊情況特殊對待,限制可以做的嚴(yán)格也可以寬松

舉例:zhangsan_123@

分析郵件名稱部分:

字母和數(shù)字表示為A-Za-z0-9

下劃線表示為_

中劃線表示為-

由于名稱是由若干個(gè)字母、數(shù)字、下劃線和中劃線組成,所以需要用到+表示多次出現(xiàn)

?通過分析得出郵件名稱部分表達(dá)式為[a-zA-Z0-9_-]+

分析域名部分:

?一般域名的規(guī)律為“[N級(jí)域名][三級(jí)域名.]二級(jí)域名.頂級(jí)域名”,比如""、""、""、"12-34.",分析可得域名類似"**.**.**.**"組成。

"**"部分可以表示為[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="^(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論