验证密码的正则表达式

要求

  • 数字+英文(大写/小写/大小写)
  • 数字+特殊符号
  • 英文(大写/小写/大小写)+特殊符号
  • 数字+英文(大写/小写/大小写)+特殊符号

简单点来说就是不能是纯数字纯字母
有没有正则大佬帮我解答一下

阅读 3.5k
2 个回答

不能是纯数字和纯字母,没有其他任何限制:/^(?![a-z]+$)(?!\d+$)/i

let reg = /^(?![a-z]+$)(?!\d+$)/i
console.log(reg.test(''))//true
console.log(reg.test(','))//true
console.log(reg.test('acvD'))//false
console.log(reg.test('123'))//false
console.log(reg.test('1a'))//true
console.log(reg.test('A1'))//true
console.log(reg.test(' 1'))//true
console.log(reg.test('\t'))//true
console.log(reg.test('\n'))//true
console.log(reg.test('\b'))//true
console.log(reg.test('中文'))//true

只能是ascii表上的可见字符长度8到64位
/^(?![a-z]+$)(?!\d+$)[!-~]{8,64}$/i

不能是纯符号的话
/^(?![a-z]+$)(?!\d+$)(?=.*[a-z0-9])[!-~]{8,64}$/i

如果是其他规则自行替换[!-~]{8,64}$

这个你可能需要一个vscode插件
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进