密码的正则表达式如何来写?

我需要一个正则表达式来检查密码:

密码至少包含八个字符、至少包含一个数字、同时包含小写字母和大写字母以及特殊字符,例如#?!)

不能是旧密码或包含用户名,"password""websitename"

这里是我的验证表达式,用于限制:八个字符,包括一个大写字母,一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

那么,如何写一个正则,限制密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符?

最佳解决思路

至少八个字符,至少一个字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$"

至少八个字符,至少一个字母,一个数字和一个特殊字符:

"^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$"

最少八个字符,至少一个大写字母,一个小写字母和一个数字:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"

至少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"

最少八个最多十个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}"

次佳解决思路

可以使用这个正则表达式:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

这个正则表达式将强制执行这些规则:

  • 至少一个大写字母English letter,(?=.*?[A-Z])

  • 至少一个小写英文字母,(?=.*?[a-z])

  • 至少有一位数字,(?=.*?[0-9])

  • 至少有一个特殊字符,(?=.*?[#?!@$%^&*-])

  • 最小八个长度.{8,}(带锚)

第三种解决思路

正则表达式没有AND运算符,所以编写匹配有效的密码的正则表达式相当困难,特别是当有效性被某些东西AND别的东西等定义时...

但是,正则表达式确实有一个OR运算符,所以只需应用DeMorgan的定理,并编写一个与无效密码相匹配的正则表达式:

任何少于八个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何字符串。

所以:

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$ 

如果能匹配上这个正则表达式的话,这是一个无效的密码。

第四种思路

对最佳答案的一个小小的改进:由于特殊字符仅限于键盘中的特殊字符,因此可用于表达任何特殊字符:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

这个正则表达式将强制执行这些规则:

  • 至少一个大写英文字母

  • 至少一个小写英文字母

  • 至少一位数字

  • 至少一个特殊字符

  • 最少八个字符

第五种思路

在我的环境中,按照最佳答案来做,我遇到了一些困难。例如,对字符如;[验证失败。我不想白名单列举我的特殊字符,所以我用[^\w\s]作为测试 - 只是放置匹配非字符(包括数字)和非空格字符。总而言之,这个做法对我来说比较有效...

  • 至少8字符

  • 至少1数字字符

  • 至少1小写字母

  • 至少1大写字母

  • 至少1特殊字符

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

JSFiddle Link - 简单的涵盖各种情况的demo

第六种思路

导入JavaScript文件jquery.validate.min.js

就可以使用如下方法:

$.validator.addMethod("pwcheck", function (value) {return /[\@\#\$\%\^\&\* 

这个正则表达式可以表达:

  1. 至少一张大写英文字母

  2. 至少一个小写英文字母

  3. 至少一位数字

  4. 至少一个特殊字符

第七种思路

满足如下条件:

  1. 最少六个字符

  2. 至少有一个大写字符

  3. 至少一个小写字符

  4. 至少一个特殊字符

正则表达式:

"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"

满足如下条件,且有可选特殊字符:

  1. 至少一个特殊字符

  2. 至少一个数字

  3. 特殊字符是可选的

  4. 最少6个字符,最多16个字符

正则表达式:

"/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"

如果不需要最小和最大条件,可以删除.{6, 16}

  • 6是最小字符数限制

  • 20是最大字符限制

  • ?=表示匹配表达式

第八种思路

需要满足的条件,以及对应的正则表达式:

 Conditions: 1] Min 1 uppercase letter.2] Min 1 lowercase letter.3] Min 1 special character.4] Min 1 number.5] Min 8 characters.6] Max 30 characters.Regex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/ 

第九种思路

根据你的需要,下面这个正则表达式应该能正常工作的:

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

只需创建一个字符串变量,分配模式,并创建一个布尔方法,如果模式匹配正确则返回true,否则返回false。

示例:

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
String password_string = "Type the password here"private boolean isValidPassword(String password_string) { return password_string.matches(Constants.passwordPattern); } 

第十种思路

试试这个正则表达式:

^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$

这个正则表达式对我来说非常完美。

function myFunction() {var str = "c1TTTTaTTT@"; var patt = new RegExp("^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$"); var res = patt.test(str); console.log("Is regular matches:", res); }

转载于:https://www.cnblogs.com/ryanace1988/p/11082961.html

正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊字符相关推荐

  1. html5中密码要求有字母,转:正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊字符...

    密码的正则表达式如何来写? 我需要一个正则表达式来检查密码: 密码至少包含八个字符.至少包含一个数字.同时包含小写字母和大写字母以及特殊字符,例如#,?,!) 不能是旧密码或包含用户名,"p ...

  2. 正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊字符...

    密码的正则表达式如何来写? 我需要一个正则表达式来检查密码: 密码至少包含八个字符.至少包含一个数字.同时包含小写字母和大写字母以及特殊字符,例如#,?,!) 不能是旧密码或包含用户名,"p ...

  3. 正则 6-16位数字、大、小字母、特殊字符中至少三种组合

    // 其中特殊字符仅限:,.:;,.?''""::''""_~!@#$^&*()<>{}[]|?/+=- 暂时不行的符号: \ [ ]con ...

  4. python016--编写代码,在用户设置新的密码时进行判断,如果小于8则让用户重新设置,如果密码里面每含有一个数字,或大写字母,小写字母,标点符号,密码位数超过10则将密码等级加1分........

    目录 程序需求: 代码及其相应的注释: 程序需求: 编写代码,用户输入密码,password>=8, 如果password,在10位以上,含有数字,或大写字母,小写字母,标点符号 则加1分,总计 ...

  5. 编写C语言程序,输入一个以回车符结束的字符串(少于80个字符),统计并输出其中大写辅音字母的个数(大写辅音字母是除‘A’,‘E’,‘I’,‘O’,‘U’以外的大写字母)。

    #include <stdio.h>int main() {char str[80];int i, count = 0;printf("请输入一个字符串: ");get ...

  6. 密码的正则表达式必须包含至少八个字符,至少一个数字以及大小写字母和特殊字符

    本文翻译自:Regex for password must contain at least eight characters, at least one number and both lower ...

  7. 正则表达必须包含数字字母和特殊字符

    下面给大家介绍下JS正则表达式 必须包含数字.字母.特殊字符 js正则表达式要求: 必须包含数字.英文字母.特殊符号且大于等于8位 特殊符号包括: ~!@#$ 下面给大家介绍下JS正则表达式 必须包含 ...

  8. 正则表达式强密码验证: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种

    验证需求: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种 正则表达式: /(?!.*\s)(?!^[\u4e00-\u9fa5]+$)(?!^[0-9]+$)(?!^[A-z]+$)( ...

  9. 正则表达式--密码复杂度验证--必须包含大写、小写、数字、特殊字符中的至少三项

    密码复杂度要求: 大写字母.小写字母.数字.特殊字符,四项中至少包含三项. import org.junit.Test; import org.springframework.util.StringU ...

最新文章

  1. 智能车技术创新与实践(01510422-90)课程简介
  2. 区块链BaaS云服务(16)天德链TDBC“金丝猴链”
  3. 并发编程中的“冷知识”(更新中)
  4. 计算机体系结构-- 第一章4--计算机体系结构
  5. PHP 数据库 ODBC
  6. 二十五、PHP框架Laravel学习笔记——模型的一对一关联
  7. vmware虚拟的ubuntu18.04死机,尝试关闭时关机报“虚拟机xxx繁忙”
  8. 低代码开发平台是什么
  9. IOS:UI设计之UISegmentedControl相关基础
  10. 应用程序平台应用之星:在线手机应用开发平台 不用搭建环境
  11. Flash Builder 的概要分析
  12. 哔哩哔哩没有html5播放,解决哔哩哔哩网页版视频空白不能播放的方法
  13. 软件测试运维工程师面试题,运维工程师笔试题目
  14. 【专精特新周报】大禹生物正式登陆北交所;奥迪威、泰德股份获北交所IPO批文;十一部门开展“携手行动” 促进大中小企业融通创新...
  15. api—淘宝图片上传
  16. 爬取豆瓣排名前100的电影
  17. java目标和规划_java个人职业发展目标规划书(2)
  18. JAVA拳皇jar_拳皇(Java简单的小程序)源码示例
  19. 各种进制换算成十进制
  20. 旗下企业永远不会超过七家 马云

热门文章

  1. mysql pacemaker_关于pacemaker监控mysql修复的方法
  2. 数字逻辑课程设计——自动售货机
  3. ORACLE EXP-00011:表不存在 情况分析及解决方案
  4. 针对交易软件 TradingView 的供应链攻击
  5. Go运行时bug调试过程解析
  6. python 和linux环境下:音频处理变频变调的方法和框架
  7. 百分之二十用计算机怎么算,巧用百分里油耗计算器,节省汽车油耗
  8. IEEE802系列协议
  9. 租车小程序系统源码+保险+押金+区域限制
  10. ftp服务器如何打开文件,ftp服务器的文件打开方式