This question already has answers here:
Regex for password must contain at least eight characters, at least one number and both lower and uppercase letters and special characters
(28个答案)
3年前关闭。
我正在尝试创建用于密码验证的正则表达式。这是要求。
最小长度8。
至少1个大写字母。
至少1个小写字母。
至少1个数字。
这些字符中的0个或更多!@#$%^&*?_〜()-。
允许a-z。
允许A-Z。
允许0-9。
到目前为止,我的表情是:
这种表达方式最有效,除非我需要它只允许5-9子弹。现在,它将允许未指定的字符,例如
我如何修改此表达式以仅允许5-9子弹且不允许其他字符?
使用先行检查条件2-4。对于实际匹配,我们需要您允许的字符中至少有8个字符。我使用
您可以看到它在here下工作。
网站说明:限制密码中的字符通常被视为一个坏主意。 xkcd也有关于密码的内容。
(28个答案)
3年前关闭。
我正在尝试创建用于密码验证的正则表达式。这是要求。
最小长度8。
至少1个大写字母。
至少1个小写字母。
至少1个数字。
这些字符中的0个或更多!@#$%^&*?_〜()-。
允许a-z。
允许A-Z。
允许0-9。
到目前为止,我的表情是:
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?_~()-]*).*$
这种表达方式最有效,除非我需要它只允许5-9子弹。现在,它将允许未指定的字符,例如
+=
。我如何修改此表达式以仅允许5-9子弹且不允许其他字符?
最佳答案
您不需要对第一个条件和第五个条件进行超前检查-您可以在最终比赛中全部检查,例如
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\w!@#$%^&*?~()-]{8,}$
使用先行检查条件2-4。对于实际匹配,我们需要您允许的字符中至少有8个字符。我使用
\w
的a-zA-Z0-9_
intead来使内容更短一些。您可以看到它在here下工作。
网站说明:限制密码中的字符通常被视为一个坏主意。 xkcd也有关于密码的内容。
关于javascript - 用于密码验证的RegEx,仅特定字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38029249/