2

我需要一个正则表达式作为必须包含的密码:

  • 至少一个大写字符
  • 至少一个小写字符
  • 至少一位数
  • `~!@#$%^&*()_-+={}[]|:;"'<>,.?/ 和空格字符中的至少一个符号字符
  • 最小长度应为 6 ch。

到目前为止,我想出了这个:

^\S*(?=\S{6,})(?=.*[A-Z])(?=.*[a-z])(?=.*\d)([`\~\!@#\$%\^&\*\(\)_\-\+={}\[\]\|:;"'<>,\.\?\/ ])\S*$

但由于某种原因,它没有像我希望的那样工作。我一直在这些事情上遇到麻烦,所以任何帮助将不胜感激。谢谢你。

4

2 回答 2

3

这不是很容易表达为单个正则表达式。当您标记“javascript”时,这就是我在 JS 中的做法。

function validatePassword(password) {
  return password.length >= 6 &&
    /[A-Z]/.exec(password) &&
    /[a-z]/.exec(password) &&
    /[0-9]/.exec(password) &&
    /[ `~!@#$%^&*()_-+={}\[\]|:;"'<>,.?\/]/.exec(password);
}
于 2013-05-23T09:22:53.740 回答
0

这应该有效:

/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[`\~\!@#\$%\^&\*\(\)_\-\+={}\[\]\|:;"'<>,\.\?\/ ]).{6,}/;

我是如何做到这一点的完整解释是关于网站艺术

于 2013-05-23T09:25:20.720 回答