正则表达式密码验证 - Codewars [重复]

Posted

技术标签:

【中文标题】正则表达式密码验证 - Codewars [重复]【英文标题】:Regex Password Validation - Codewars [duplicate] 【发布时间】:2015-06-10 11:49:59 【问题描述】:

免责声明:这是一个Codewars 问题。

您需要编写正则表达式来验证密码以确保它 符合以下条件:

至少六个字符 包含小写字母 包含一个大写字母 包含一个数字

有效密码将只 字母数字字符。

到目前为止,这是我的尝试:

function validate(password) 
    return /^[A-Za-z0-9]6,$/.test(password);

到目前为止,它所做的是确保每个字符都是字母数字,并且密码至少包含 6 个字符。在这些方面它似乎工作正常。

我被困在要求有效密码至少包含一个小写字母、一个大写字母和一个数字的部分。如何使用单个正则表达式将这些要求与之前的要求一起表达?

我可以在 javascript 中轻松做到这一点,但我希望仅通过正则表达式来做到这一点,因为这是问题正在测试的内容。

【问题讨论】:

google.co.in/… 【参考方案1】:

您需要使用前瞻:

function validate(password) 
    return /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])[A-Za-z0-9]6,$/.test(password);

说明:

^               # start of input 
(?=.*?[A-Z])    # Lookahead to make sure there is at least one upper case letter
(?=.*?[a-z])    # Lookahead to make sure there is at least one lower case letter
(?=.*?[0-9])    # Lookahead to make sure there is at least one number
[A-Za-z0-9]6, # Make sure there are at least 6 characters of [A-Za-z0-9]
$               # end of input

【讨论】:

以上是关于正则表达式密码验证 - Codewars [重复]的主要内容,如果未能解决你的问题,请参考以下文章

密码验证Objective-C的正则表达式[重复]

用于密码验证的正则表达式,仅特定字符 [重复]

正则表达式验证模式只允许一个字符[重复]

正则表达式验证

默认 ASP.NET Core 身份密码的正则表达式

强密码验证laravel [重复]