正则表达式:php 的密码验证


Regex: Password validation of php

我正在对我的新项目进行一些密码验证。我有这个规则,我想使用 php preg_match() 函数在正则表达式模式上转换:

  • 接受所有字符。
  • 空格除外。
  • 至少 4 个字符。
  • 最多 20 个字符。

提前谢谢你!

试试这个

(?s)^('S{4,20})$

解释

"(?s)" +     // Match the remainder of the regex with the options: dot matches newline (s)
"^" +        // Assert position at the beginning of the string
"(" +        // Match the regular expression below and capture its match into backreference number 1
   "''S" +       // Match a single character that is a “non-whitespace character”
      "{4,20}" +      // Between 4 and 20 times, as many times as possible, giving back as needed (greedy)
")" +
"$"          // Assert position at the end of the string (or before the line break at the end of the string, if any)