【问题标题】:can any ask explain me this regular expression "pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"?有人可以向我解释这个正则表达式“pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}”吗?
【发布时间】:2022-07-26 22:32:20
【问题描述】:

我很难理解这个我想在我的注册页面中创建密码验证表单的正则表达式:

pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"?

还有为什么我们每次都把这个字符“?=。*”放在这个正则表达式中? 这意味着什么?

【问题讨论】:

  • regexr.com可以分解正则表达式并为您解释每个部分,非常方便

标签: php html


【解决方案1】:

。 : 代表一个字符,它可以是任何类型的字符,但它是一个

.. : 代表两个字符 ...

* : 表示 0 或更多

.* : 表示表达式0个或多个字符

?= : https://stackoverflow.com/a/1570916/18266788

它的作用: pattern="(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,}"

首先它检查是否有数字(由 (?=.*\d) 表示)

检查是否有更低的 (?=.*[a-z])

上部相同 (?=.*[A-Z])。

如果长度大于 8 (.{8,}),则“添加”这 3 个检查/匹配

(如果我错了或不准确,请纠正我,但我用我自己的话解释)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2011-08-26
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多