下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版2025-2026學(xué)年語文四年級(jí)第一學(xué)期期末質(zhì)量檢測練習(xí)卷(含答案)
- 湖南省岳陽市汨羅市2025-2026學(xué)年八年級(jí)上學(xué)期1月期末生物試題(無答案)
- 河南省駐馬店市泌陽縣2025-2026學(xué)年八年級(jí)上學(xué)期1月期末考試歷史試卷答案
- 2025-2026學(xué)年一年級(jí)(上)期末游戲化測試語文試卷(附參考答案)
- 五年級(jí)題目及答案
- 文件筐測試題及答案
- 2026年小學(xué)語文模擬沖刺押題卷
- 誠實(shí)做事的演講稿
- 冀教版三年級(jí)上冊數(shù)學(xué)第二單元-兩、三位數(shù)乘一位數(shù)-測試卷及答案(奪冠系列)
- 高中高二下學(xué)期地理期末考試試題答案解析
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人筆試參考題庫及答案解析
- 云南師大附中2026屆高三1月高考適應(yīng)性月考卷英語(六)含答案
- 海南2025年中國熱帶農(nóng)業(yè)科學(xué)院橡膠研究所第一批招聘16人(第1號(hào))筆試歷年參考題庫附帶答案詳解
- 2025-2026人教版數(shù)學(xué)七年級(jí)上冊期末模擬試卷(含答案)
- 2026年九江市八里湖新區(qū)國有企業(yè)面向社會(huì)公開招聘工作人員【48人】筆試參考題庫及答案解析
- 廣告行業(yè)法律法規(guī)與行業(yè)規(guī)范(標(biāo)準(zhǔn)版)
- 2025年CFA二級(jí)道德與專業(yè)標(biāo)準(zhǔn)題
- 2026年鄭州電力高等專科學(xué)校單招職業(yè)技能測試題庫新版
- 2026年八年級(jí)物理上冊期末考試試卷及答案(共四套)
- 節(jié)能與新能源汽車技術(shù)路線圖2.0
- 保育員配合教學(xué)培訓(xùn)工作指南
評(píng)論
0/150
提交評(píng)論