簡體   English   中英

正則表達式-避免重復相同字母的序列

[英]Regular expression - avoid the repetition of the sequence of the same letters

我正在嘗試檢查在PHP網站上工作的用戶插入的密碼。 我的支票想:

  • 至少8個字符
  • 最多20個字符
  • 接受字母,數字和常見的特殊字符,例如(點)@ + $-_!

在此之前,我已經能夠找出正確的表達式,但是現在我想添加另一條規則,即用戶一次不能寫相同的字母序列。

假設不考慮重復兩次相同的字母,如果用戶多次寫同一字符串(等於或超過3個字符),則該字符串匹配。

例如:

  • abcde 無效 -至少應包含8個字符
  • abcde1234 有效
  • abcd1abcd1 由於字符串abcd1的重復而無效

更多示例(更新):

  • abababab 無效 -字符串“ ab”重新填充2次或更多次
  • aaaaaaaa 無效 -字符串aaa重新插入次數超過一次
  • helloworld 有效 -即使字母“ l”重復兩次

有什么建議嗎?
我不知道寫下正確的RegExp是可能的,也許我正在嘗試做一些不可能的事情。
在離開這個想法之前,我很想知道在RegExp中了解我的人的觀點。
提前致謝

^(?!.*?(.+)\1)([\w@+$!.-]+){8,20}$

似乎運作良好: http//regex101.com/r/cU9lD0/1

棘手的部分是^(?!.*?(.+)\\1) ,其內容為“輸入開始,不跟在后面:某物,然后是某個子字符串,然后再次是該子字符串”。

話雖這么說,所有“密碼驗證”都是毫無意義的工作,實際上阻止了人們使用非常好的密碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM