preg匹配重复或增量字符

soh*_*l07 3 php regex preg-match

我使用preg match验证密码为:

(preg_match("/^.*(?=.{5,}).*$/", $password)
Run Code Online (Sandbox Code Playgroud)

也接受特殊字符.

但由于某种原因,我需要修改它应该接受的

  • 只有字母数字
  • 最少5个字符
  • 并且非常重要的是它不能有任何重复或增量字符,如:aaaa或12345或abc123等

.

Tim*_*ker 6

if (preg_match(
    '%^           # Start of string
    (?!.*(.)\1)   # Assert no repeated characters
                  # Assert no sequential digits/characters
    (?!.*(?:01|12|23|34|45|56|67|78|89|90|
            ab|bc|cd|de|ef|fg|gh|hi|ij|jk|
            kl|lm|mn|no|op|pq|qr|rs|st|tu|
            uv|vw|wx|xy|yz))
    [a-z0-9]{5,}  # Match at least five alnum characters
    $             # End of string%ix', 
    $password)) {
    # Successful match
    }
Run Code Online (Sandbox Code Playgroud)