[英]Regex not allowed Capital letter followed by lower case letters followed by number followed by special character
正則表達式需要匹配以下格式
不允許連續超過兩個相同的字符
但是我們不想遵循下面的特定 Patten(首字母大寫,后跟數字,后跟特殊字符-(例如,Fall2015!))表示大寫后跟小寫后跟數字后跟特殊字符
(?=.{8,24}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_.!@$*=-?#])(([A-Za-z0-9_.!@$*=-?#])\2?(?!\2))
看起來以下應該勾選您的框:
^(?![A-Z][a-z]+\d+[.!@$*=?#-]$|.*(.)\1\1)(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[.!@$*=?#-]).{8,24}$
查看在線演示
^
- 開始字符串錨。(?!
- 對以下內容的負面預測:
[AZ][az]+\d+[.?@$*=?#-]$
- 你想要取反的文字模式:一個大寫字母、1+ 個小寫字母、1+ 個數字和字符串結束前的特殊字符.|
- 或者:.*(.)\1\1
- 斷言 position 沒有以下三個相同字符的序列:0+ 個字符、第一個捕獲組和對該組的兩個直接反向引用。)
- 關閉負前瞻。(?=.*[AZ])
- 在字符串中斷言大寫字母的正向前瞻。(?=.*[az])
- 在字符串中斷言小寫字母的正向前瞻。(?=.*\d)
- 在字符串中斷言數字的正向前瞻。(?=.*[.?@$*=?#-])
- 正向預測以斷言字符串中的特殊字符。.{8,24}
- 除換行符以外的任何 8-24 個字符。$
- 結束字符串錨。嘗試這個:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_.!@$*=?#-])(?!.*(.)\1\1)(?!.*[A-Z][a-z]+\d+[_.!@$*=?#-])[\w.!@$*=?#-]{8,24}$
主要變化是:
^
錨定表達式開始(?..*(.)\1\1)
防止三倍字符(?..*[AZ][az]+\d+[_?!@$*=?#-])
以防止像“Fall2015!”這樣的輸入[\w.?@$*=,#-]{8,24}$
將輸入限制為僅這些字符且僅 8-24 長度 還要注意引入\d
作為[0-9]
的簡寫和\w
作為[a-zA-Z0-9_]
簡寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.