【问题标题】:password regex for PHP with 3 possible conditions具有 3 个可能条件的 PHP 密码正则表达式
【发布时间】:2011-08-17 08:51:13
【问题描述】:

是否甚至可以为 PHP 编写具有以下条件的正则表达式 - 在一行正则表达式中?

密码必须包含以下任何一个

  1. 包含一个字母和一个数字。
  2. 包含一个字母和一个特殊字符
  3. 包含一个数字和一个特殊字符。

【问题讨论】:

  • 什么是特殊字符
  • @alex: !@#$%^&*()-_=+[]{};':",./?\|`~ :)
  • 嗯,读到这里,我是不是觉得很温暖:(?=.*[a-zA-Z\d]) | (?=.*[a-zA-Z\W]) | (?=.*[\d\W]).*$
  • 是的@mingos。我假设是\W。我什至想允许 ¥ 之类的东西。

标签: php regex passwords


【解决方案1】:

这个必须包含:一个数字,一个大写和一个小写字母:

^\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*$

【讨论】:

    【解决方案2】:

    我想出的这个正则表达式非常接近:

    (?=.*[a-zA-Z\d])(?=.*[a-zA-Z\W])(?=.*[\d\W]).*$

    它成功地要求了 3 种组合中的任何一种:

    1. 必须包含一个字母和一个数字。 或
    2. 必须包含一个字母和一个特殊字符 或
    3. 必须包含一个数字和一个特殊字符。

    剩下的唯一问题是空格可以替换上述组合的任何部分,并且密码可以使用。我希望允许空格,但要满足三个要求之一,密码才能通过,空格与否。

    【讨论】:

    • 有人对如何完成这个正则表达式有任何想法吗?
    • 抱歉,我不想允许空格,只允许空格。
    猜你喜欢
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多