如何使用正则表达式验证密码中的字符?密码必须至少包含1个特殊字符、1个数字和1个字母。长度不能超过8个字符。
发布于 2009-09-30 06:34:46
你必须使用正则表达式吗?它看起来不适合这项工作。
相反,我将实现一个函数,该函数检查您希望看到的每个字符,并检查长度。该函数将比尝试执行相同操作的正则表达式更易于阅读。
发布于 2009-09-30 07:13:34
正则表达式:
^(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).*$
将匹配
特殊字符为'@', '#', '$', '%', '^', '&', '+'和'=',允许的特殊字符可以通过更改第三个前瞻组来更改。
然而,我无法使用正则表达式使其匹配最大长度,这意味着很可能是正确的,而正则表达式不适用于此。给定的正则表达式根据三个匹配的前瞻组强制最小密码长度为3。您可以像Jonathan在他的评论中建议的那样,通过添加一个额外的前瞻组来强制执行最小长度:例如,(?=.{8.})给出的最小长度为8。
https://stackoverflow.com/questions/1496411
复制相似问题