iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Regex正则表达式判断密码强度
  • 547
分享到

Regex正则表达式判断密码强度

正则表达式判断密码强度正则表达式判断密码 2023-02-01 15:02:03 547人浏览 薄情痞子
摘要

目录需求在线测试Regex正文密码强度分类Regex分析中强度密码同理。高强度密码同理。补充:密码强度 弱 中 强 正则表达式判断需求   最近在最做一个软件的注

需求

  最近在最做一个软件的注册登录的功能,需要用到对密码强度的判断,并对当前输入的密码的强度进行输出。需求里对密码分了三级,分别是低强度、中强度、高强度,但是没有对什么是低强度、什么是高强度进行详细分类,所以自己在做的时候简单做了下分类。对密码分类后,我想到的是使用Regex表达式直接判断密码的强度,密码字符串输入然后输出对应强度等级就行。

  这里用到Regex表达式,虽然还是经常使用,但是对其语法还是一知半解。主要一般用到都比较简单,不需要多重判断。在网上一番搜索后,基本没有找到符合我要求的Regex表达式。虽然可以用if...else...进行进行分步判断,但是对于我等强迫症而言,能用一句代码说明的事情绝对不写第二句。所以还是头疼了好一会的。大体看了下别人怎么写的,简单对照了下语法设计,然后开始着手自己的密码强度判断Regex表达式的书写。

在线测试Regex

https://www.Goregex.cn/

正文

密码强度分类

  首先完成对密码强度等级的分类。密码为6-16位,分为低、中、高3个等级。密码是大小写字母,数字,英文标点的随机组合。密码强度等级对照表:

长度描述强度
6<=长度<=8纯数字
-纯数字
-纯字母
-纯英文标点
-数字+字母
-数字+标点
-字母+标点
-数字+字母+标点
9<=长度<=12纯数字
-纯字母
-纯英文标点
-数字+字母
-数字+标点
-字母+标点
-数字+字母+标点
13<=长度<=16所有

Regex分析

  Regex表达式再复杂也逃不过最基础的与或非关系,我们完全可以从这方面对复杂的Regex表达式进行拆分。

  在此之前需要理解以下几种符号的含义。

符号描述
^匹配输入字符串的开始位置
$匹配输入字符串的结束位置
.匹配除 "\n" 之外的任何单个字符
*匹配前面的子表达式零次或多次
+匹配前面的子表达式一次或多次
?匹配前面的子表达式零次或一次
\d匹配一个数字字符。等价于[0-9]
\S匹配任何非空白字符
[xyz]字符种类。匹配⽅括号内的任意字符
(xyz)字符集,匹配与 xyz 完全相等的字符串
[a-z]匹配 'a' 到 'z' 范围内的任意小写字母字符
(?=x)正向肯定预查询包含x
{4,8}匹配4到8位长度的字符
或运算符
\转义字符,⽤于匹配⼀些保留的字符{}.*+?^$\|
[^x]匹配除了x以外的任意字符

  拿低强度的密码来说,首先需要满足6-8位,其次全是数字或全是字母或全是标点符号,只满足这两个条件的就是低强度的密码。拆分开后就好实现了。

先看怎么实现满足6-8位的表达式。

^\S{6,8}$ //任何非空白字符,且满足6-8位

匹配都是数字的情况。

^\d+$

匹配都是字母的情况。

^[A-Za-z]+$

匹配都是符号的情况。

^[!@#$%^&*?=]+$

拼接在一起,就是低强度密码的正则表达式:

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

中强度密码同理。

匹配6-8位同时包含数字+字母的情况。可以理解为包含数字、字母的字符串,但不全是数字或不全是字母。

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

匹配6-8位同时包含数字+标点(!@#$=%^&*?)的情况。同上。

(?=.*\d)(?=.*[!@#$=%^&*?])(?=^[\d!@#$=%^&*?]+$)^\S{6,8}$

匹配6-8位同时包含字母+标点的情况。同上。

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

然后再加上匹配9-12位纯数字,纯字母,纯标点的情况。与之前的写法相同。

高强度密码同理。

补充:密码强度 弱 中 强 正则表达式判断

今天看了下项目中的注册页源码,顺带着看了下判断密码强度的正则表达式,写的很好,最起码比我写的好,所以记录下来留着以后参考
代码如下

var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g")  //强
var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g")  //中
var enoughRegex = new RegExp("(?=.{6,}).*", "g") //弱

用input 的keyup() 方法每输入一个字符用 正则的 enoughRegex.test(passWord) 方法去检测密码

本人之前也学过正则表达式的一点皮毛,下面从强到弱解释下这三句正则的规则,如果有说的不对的地方欢迎大神拍砖,共同学习进步!

强 ==> 密码长度大于等于8位数 包含大写字母[A-Z] + 小写字母[a-z] + 数字[0-9] + 非单词字符的特殊字符[标点符号,空格啥的这些] 结尾

中 ==> 密码长度大于等于7位数 大写字母[A-Z] + 小写字母[a-z] 或者 大写字母[A-Z] + 数字[0-9] 或者 小写字母[a-z] + 数字[0-9] + 任意字符 结尾

弱 ==> 大于等于6位 任何字符或者数字 (如果达不到这个条件就是弱,所以这里需要用false判断)

到此这篇关于Regex正则表达式判断密码强度的文章就介绍到这了,更多相关正则表达式判断密码强度内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Regex正则表达式判断密码强度

本文链接: https://www.lsjlt.com/news/193863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Regex正则表达式判断密码强度
    目录需求在线测试Regex正文密码强度分类Regex分析中强度密码同理。高强度密码同理。补充:密码强度 弱 中 强 正则表达式判断需求   最近在最做一个软件的注...
    99+
    2023-02-01
    正则表达式判断密码强度 正则表达式判断密码
  • 如何入门正则表达式Regex
    这篇文章给大家介绍如何入门正则表达式Regex,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。今天要分享的内容是正则表达式Regex。某天中午正要拿起手机打...
    99+
    2024-04-02
  • 一行正则表达式判断质数的代码
    目录背景示例正则分析原理优化空间性能测试总结背景 昨天无意中看到一篇大佬的文章Primality regex(正则表达式判断质数),惊为天人,正则表达式也能用来判断质数了?立马来研究...
    99+
    2024-04-02
  • C#正则表达式Regex用法详解
    目录一、正则表达式应用举例1、C#校验合法性:2、C#限制输入3、正则表达式匹配闭合HTML标签(支持嵌套)1、分组构造2、举例:二、.Net正则表达式测试器1、功能简介2、下载与安...
    99+
    2024-04-02
  • C#正则表达式Regex类的用法
    一、C#正则表达式符号模式 字  符 描  述 ...
    99+
    2024-04-02
  • python 正则表达式判断URL是否合
    import re url = "http://www.baidu.com" if re.match(r'^https:/{2}\w.+$', url): print("Ok.") else: print("Error...
    99+
    2023-01-31
    正则表达式 python URL
  • C#正则表达式Regex类怎么使用
    这篇文章主要介绍“C#正则表达式Regex类怎么使用”,在日常操作中,相信很多人在C#正则表达式Regex类怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#正则表达式Regex类怎么使用”的疑惑有所...
    99+
    2023-06-22
  • Python的RegEx正则表达式怎么使用
    RegEx 或正则表达式是形成搜索模式的字符序列。RegEx 可用于检查字符串是否包含指定的搜索模式。RegEx 模块Python 提供名为 re 的内置包,可用于处理正则表达式。导入 re 模块:import rePython 中的 Re...
    99+
    2023-05-19
    Python regex
  • 怎么用javascript正则表达式判断质数
    这篇文章主要介绍“怎么用javascript正则表达式判断质数”,在日常操作中,相信很多人在怎么用javascript正则表达式判断质数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用javascript...
    99+
    2023-06-30
  • C#正则表达式(Regex类)用法实例总结
    目录前言1.正则表达式的概念1.1正则表达式的组成1.1.1元字符是什么1.1.2定位元字符1.2三个括号1.3简化正则表达式1.4@符号的作用1.5正则表达式可以实现四种功能:2....
    99+
    2022-11-13
    c#正则表达式的用法 c# 正则式 C# 正则表达式
  • 密码的正则表达式怎么写
    本篇内容主要讲解“密码的正则表达式怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“密码的正则表达式怎么写”吧!正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊...
    99+
    2023-07-05
  • JavaScript中怎么利用正则表达式判断匹配规则
    这篇文章将为大家详细讲解有关JavaScript中怎么利用正则表达式判断匹配规则,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。字符串是编程时涉及到的最多的一...
    99+
    2024-04-02
  • JS如何使用正则表达式判断有效数
    这篇文章将为大家详细讲解有关JS如何使用正则表达式判断有效数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。<script type="text/...
    99+
    2024-04-02
  • 解密MySQL中强大的武器——REGEXP正则表达式
    家人们,今天我来为大家介绍一项在 MySQL 中非常强大的武器——REGEXP正则表达式。MySQL 作为一款广泛使用的关系型数据库管理系统,其内置的 REGEXP 关键字为我们提供了强大的正则表达式...
    99+
    2023-09-08
    mysql 正则表达式 数据库
  • Kotlin语言编程Regex正则表达式实例详解
    目录前言Regex 构造函数常用正则表达方法示例展示1.containsMatchIn(input: CharSequence) 包含指定字符串2.matches(input: Ch...
    99+
    2024-04-02
  • PHP 正则表达式判断手机号和身份证号
    在PHP编写的程序中,为了保证代码本身的流程安全,少不了对数据流进行一些效验的工作。而PHP给我提供了正则表达式验证函数,我们可以很方便的通过正则表达式的验证函数,来检查数据流是否符合标准。这个时候就需要进行数据上的判断 PHP正则表达式判...
    99+
    2023-09-03
    php 正则表达式 开发语言
  • Java 正则表达式(深度长文)
    目录 一.正则表达式 二.正则表达式的底层实现 1.matcher.find() 2.matcher.groups() 三.正则表达式的语法 1.正则转义符  2.正则表达式支持字符 3.捕获组(capture group) (1)普通捕获...
    99+
    2023-09-22
    正则表达式 java
  • Python入门教程(二十九)Python的RegEx正则表达式
    RegEx 或正则表达式是形成搜索模式的字符序列。 RegEx 可用于检查字符串是否包含指定的搜索模式。 RegEx 模块 Python 提供名为 re 的内置包,可用于处理正则表达...
    99+
    2023-05-18
    Python RegEx Python正则表达式
  • 如何使用正则表达式判断邮箱(以C#为例)
    目录首先引入正则需要使用的命名空间判断是否为QQ邮箱判断是否为邮箱补充:C#正则表达式(Regex类)总结日常开发中,判断邮箱是少不了的,这个我以**C#**为例,来写一个判断方法,...
    99+
    2024-04-02
  • java 判断字符串中有汉字 (常用正则表达式)
    今天在开发中碰到了判断字符串中是否有汉字的问题,方便起见,记录下来以便后期查看。 通过正则表达式判断 判断汉字 String address = "北京市朝阳区阜通东大街6号";String lonAndLat = "";Pattern p...
    99+
    2023-09-14
    正则表达式 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作