<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
專案開發中經常會遇到對使用者輸入內容的限制,本篇對常用限制做一總結。如下圖所示,標識欄位有嚴格命名限制,使用者輸入校驗這部分工作前端可以做,當然後端也可以通過在實體類中新增註解的方式實現引數校驗。其底層原理還是攔截器攔截請求,對帶有相關注解的屬性欄位進行處理(非空、大小、長度、內容等判斷和驗證)
實體類中程式碼如下:
/** * 公司名稱 */ @Pattern(regexp="^[u4e00-u9fa5_a-zA-Z0-9]+$",message="公司名稱只能輸入中文字元 字母、數位") @ApiModelProperty(value = "公司名稱") private String name;
有時系統對使用者名稱的命名有更多要求,比如使用者名稱必須要有一個小寫字母,一個大寫字母和一個數位,並且是6-20位,正規表示式如下:
@Pattern(regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[A-Za-z0-9]{6,20}$", message = "使用者名稱錯誤")
1 整數或者小數:"^[0-9]+.{0,1}[0-9]{0,2}$" 2 只能輸入數位:"^[0-9]*$" 3 只能輸入零和非零開頭的數位:"^(0|[1-9][0-9]*)$" 4 只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$" 5 只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$" 6 只能輸入非零的正整數:"^+?[1-9][0-9]*$" 7 只能輸入非零的負整數:"^^-[1-9]+[0-9]*$"
只能輸入長度為3的字元:"^.{3}$"。 只能輸入由26個英文字母組成的字串:"^[A-Za-z]+$" 只能輸入由26個大寫英文字母組成的字串:"^[A-Z]+$" 只能輸入由26個小寫英文字母組成的字串:"^[a-z]+$" 只能輸入由數位和26個英文字母組成的字串:"^[A-Za-z0-9]+$" 只能輸入由數位、26個英文字母或者下劃線組成的字串:"^w+$"
驗證一年的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"。
由於各種域名郵箱的多樣性,需要特殊情況特殊對待,限制可以做的嚴格也可以寬鬆 舉例:zhangsan_123@cetc.com.cn 分析郵件名稱部分: 字母和數位表示為A-Za-z0-9 下劃線表示為_ 中劃線表示為- 由於名稱是由若干個字母、數位、下劃線和中劃線組成,所以需要用到+表示多次出現 通過分析得出郵件名稱部分表示式為[a-zA-Z0-9_-]+ 分析域名部分: 一般域名的規律為「[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_-]+)+$"
只能輸入漢字:"^[u4e00-u9fa5]{0,}$" 匹配中文字元的正規表示式:"[u4e00-u9fa5]"
聯絡電話:@Pattern(regexp = "^[\d\*]{7,12}$", message = "聯絡電話輸入有誤") 由於區號分為3位和四位的,然後座機號碼又分為7位和8位元的,所以這裡校驗的長度是7-12位元,並且這裡新增了*表示脫敏的手機號仍然可以通過校驗。
密碼:長度為6-32位元,並且必須包含數位、字母、特殊符號中的至少兩種: @Pattern(regexp = "^(?=.*[a-zA-Z0-9].*)(?=.*[a-zA-Z.!@#$%^&*].*)(?=.*[0-9.!@#$%^&*].*).{6,32}$", message = "密碼至少包含數位,字母和符號的兩種")
到此這篇關於Java中@Pattern註解常用的校驗正規表示式學習筆記的文章就介紹到這了,更多相關Java @Pattern註解校驗正規表示式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45