preg_match用于重复或增量字符

时间:2013-04-27 12:01:06

标签: php regex preg-match

我使用preg match验证密码为:

(preg_match("/^.*(?=.{5,}).*$/", $password)

也接受特殊字符。

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

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

1 个答案:

答案 0 :(得分: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
    }