RegEx for password validation, only specific characters
本问题已经有最佳答案,请猛点这里访问。
我正在尝试创建用于密码验证的正则表达式。以下是要求。
这是我迄今为止的表达方式:
这个表达式主要起作用,只是我需要它只允许项目符号5-9。现在它将允许未指定的字符,例如
如何修改此表达式以仅允许项目符号5-9,而不允许其他字符?
你不需要预先检查第一个和第五个到第五个条件-你可以在最后一场比赛中检查所有这些,比如
1 | ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\w!@#$%^&*?~()-]{8,}$ |
使用先行检查条件2-4。对于实际匹配,我们需要至少8个字符作为您允许的字符。我用了
你可以看到它在这里工作。
网站提示:限制密码中的字符通常被视为一个坏主意。同样,xkcd也有一些关于密码的内容。
可以将
1 2 3 4 5 6 | var matches = [/[A-Z]/, /[a-z]/, /\d/, /[!@#$%^&*?_~()-]/]; var str ="Ab0!#?~_"; var pw = matches.every(function(re) { return re.test(str) && !/[+=]/.test(str) }) && str.length === 8; console.log(pw); |