帮助解决密码复杂性正则表达式

2024-03-01

我使用以下正则表达式来验证密码复杂性:

/^.*(?=.{6,12})(?=.*[0-9]{2})(?=.*[A-Z]{2})(?=.*[a-z]{2}).*$/

简而言之:2个小写字母,2个大写字母,2个数字,最小长度为6,最大长度为12。

当我使用最小长度时,除了最大长度之外,它工作得很好。

例如:

/^.*(?=.{6,})(?=.*[0-9]{2})(?=.*[A-Z]{2})(?=.*[a-z]{2}).*$/

这正确地要求最小长度为 6!

和这个:

/^.*(?=.{,12})(?=.*[0-9]{2})(?=.*[A-Z]{2})(?=.*[a-z]{2}).*$/

正确要求最大长度为 12。

然而,当我像第一个例子一样将它们配对时,它就是不起作用!

是什么赋予了?谢谢!


你要:

/^(?=.{6,12}$)...

你正在做的是说:找到我后面跟着的任何字符序列:

  • 6-12 个字符
  • 后跟 2 位数字的另一个字符序列
  • 后跟 2 个大写字母的另一个字符序列
  • 后跟 2 个小写字母的另一个字符序列

接下来是另一个字符序列。这就是最大长度不起作用的原因,因为 30 个字符后跟 00AAaa 和另外 30 个字符将通过。

另外你正在做的是强制两个数字together。不那么严格,但要求字符串中的任何位置至少有两个数字:

/^(?=.{6,12}$)(?=(.*?\d){2})(?=(.*?[A-Z]){2})(?=(.*?[a-z]){2})/

最后你会注意到我使用的是非贪婪表达式(.*?)。这将避免lot回溯和这种验证是您通常应该使用的。和...之间的不同:

(.*\d){2}

and

(.*?\d){2}

是第一个会抓住所有字符.*然后寻找一个数字。它找不到一个,因为它将位于字符串的末尾,因此它将回溯一个字符,然后查找一个数字。如果它不是数字,它将继续回溯,直到找到一个数字。完成之后,它将再次匹配整个表达式,这将触发更多的回溯。

就是这样贪婪的通配符 means.

第二个版本将传递零个字符.*?并寻找一个数字。如果不是数字.*?将抓取另一个字符,然后查找数字,依此类推。特别是在长搜索字符串上,这可以快几个数量级。对于短密码来说,几乎肯定不会产生什么影响,但了解正则表达式匹配器的工作原理并尽可能编写最好的正则表达式是一个好习惯。

话虽这么说,这可能是一个为了自己的利益而过于聪明的例子。如果密码因不满足这些条件而被拒绝,您如何确定哪个密码失败,以便向用户提供有关修复问题的反馈?实际上,程序化解决方案可能更可取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帮助解决密码复杂性正则表达式 的相关文章

  • 将加载 gif 添加到简单脚本中

    我对 Javascript 真的很陌生 但我已经有了这个加载 url 内容的脚本 一切都工作正常 我使用按钮上的 onClick 方法调用 plannerSpin 函数 但是当这一切发生时 我将如何显示动画 gif var xmlHttp
  • 如何通过 md5 比较图像?

    该方法是否比较图像的像素值 我猜它不会起作用 因为它们的尺寸彼此不同 但如果它们相同但格式不同怎么办 例如 我截图并保存为 jpg另一个并保存为 gif MD5哈希是实际的二进制数据 因此不同的格式将具有完全不同的二进制数据 因此 要使 M
  • mysqli_num_rows 无法正常工作

    I have an admin panel in my website in which the admin creates new pages he provides the page name and then the spaces o
  • 为数据库生成随机 ID

    我对一个项目有一个要求 我需要生成唯一的 ID ID 必须大写 我无法检查数据库以查看 ID 是否已被使用过 我们预计每个月都会有数百万条记录添加到数据库中 我在这里尝试过解决方案 PHP 如何生成随机的 唯一的字母数字字符串 https
  • 在非 WordPress php 页面之外显示 WordPress 帖子

    我需要在非 WordPress php 页面中显示 WordPress 博客文章 我已经尝试过以下代码
  • 递归树遍历 - 如何跟踪递归级别?

    我基本上试图从表示树结构的多维数组构建 html ul li 嵌套列表 下面的代码工作正常 但我想改进它 我需要一种方法来跟踪递归级别 以便我可以将不同的类应用于不同的级别 向生成的输出添加缩进等 function buildTree tr
  • 使用 php 将 swf 转为 pdf

    有没有办法使用 php 将 SWF 转换为 pdf 我的意思是该页面有一个按钮 单击它必须将 swf 内容导出为 pdf 格式 您可以尝试的一种方法是使用ffmpeg http www ffmpeg org 使用 image2 输出编解码器
  • Gmail 搜索怎么这么快?

    搜索这么多字符的最有效方法是什么 你怎么认为 假设网站是用 PHP 和 MySQL 构建的 我应该学习什么才能尽可能有效地构建它 有什么我应该学习的算法吗 文本索引算法 https stackoverflow com questions 4
  • parse_str():jwage/purl 中不推荐调用不带结果参数的 parse_str()

    public function postIndex url new Url https www dropbox com 1 oauth2 authorize url gt query gt setData response type gt
  • Laravel - 重复键批量插入更新大数据集

    我有大约 80k 条记录 每天需要多次运行插入 更新脚本 INSERT INTO my rankings id rank VALUES 1 100 2 99 3 102 80000 3 ON DUPLICATE KEY UPDATE ran
  • Mongo 正则表达式用于“不匹配”或反向[重复]

    这个问题在这里已经有答案了 我的 mongo 文档都包含一个名为templateName 有一些包含该值的文档 a SystemDefaultTemplate b SystemDefaultTemplate c SystemDefaultT
  • 如何更改数组键从 1 而不是 0 开始[重复]

    这个问题在这里已经有答案了 我在某个数组中有值 我想重新索引整个数组 以便第一个值键应该是 1 而不是零 即 默认情况下 PHP 中的数组键从 0 开始 即0 gt a 1 gt b 我想重新索引整个数组以从 key 1 开始 即1 gt
  • 根据用户的时间设置问候语(早上好,下午好......)

    任何人都可以推断如何根据用户的时间设置实现基本的 晚上好 或 早上好 也许 PHP 会获取服务器时间 但我希望用基于时间的适当问候语来问候网站访问者 并考虑到他们一天中的时间 E G 早上好 晚上好 下午好 基于它 getHours 日期对
  • perl 和 java 正则表达式功能之间有什么区别?

    perl 和 java 在支持哪些正则表达式术语方面有什么区别 这个问题仅涉及正则表达式 并且特别排除了how可以使用正则表达式 即使用正则表达式的可用函数 方法 以及语言之间的语法差异 例如java要求转义反斜杠等 特别令人感兴趣的是 j
  • Yii:使用与控制器布局不同的布局渲染动作

    在 Yii 中 有没有办法使用不同的方式渲染单个动作layout比为控制器定义的值 我有一个操作希望其格式与其他操作不同 并且文档中不清楚这是否可能 我相信您可以调用该操作 layout多变的 public function actionY
  • Twitter URL 编码

    我们即将发起一场小小的推特圣诞竞赛 但我遇到了一些小障碍 要进入 人们需要按以下格式发布推文 user blah blah blah hashtag 目前 我有一个表单 他们可以在其中输入答案 废话 废话 废话 和一个 PHP 脚本 该脚本
  • PHP:如何使用 nl2br() 和 HTML Purifier 保持换行?

    Issue 使用时HTML 净化器 http htmlpurifier org 为了处理用户输入的内容 换行符不会被转换为 br tags 考虑以下用户输入的内容 Lorem ipsum dolor sit amet This is ano
  • MySQL 查询按父级排序然后子级排序

    我的数据库中有一个页面表 每个页面可以有一个父页面 如下所示 id parent id title 1 0 Home 2 0 Sitemap 3 0 Products 4 3 Product 1 5 3 Product 2 6 4 Prod
  • Laravel 中间件将变量返回给控制器

    我正在对用户进行权限检查 以确定他们是否可以查看页面 这涉及首先通过一些中间件传递请求 我遇到的问题是 在将数据返回到视图本身之前 我在中间件和控制器中复制相同的数据库查询 这是设置的示例 路线 php Route get pages id
  • 两种模型,一种是 STI,一种是验证

    假设我有两个表 产品和订单 为了简单起见 假设一次只能购买一种产品 因此没有像 order items 这样的连接表 所以关系是Product有很多订单 Order属于product 因此 product id是Order表中的一个fk 产

随机推荐

  • 使用 Linq to SQL 进行多线程处理

    我正在构建一个应用程序 它需要我使用 DataContext 的内部线程 我的应用程序不断抛出异常InvalidOperationException类似于 There is already an open DataReader associ
  • 未知长度资产的 AVAssetResourceLoaderDelegate 实现

    我的 iOS 应用程序使用 AVPlayer 播放来自我的服务器的流音频并将其存储在设备上 我实现了 AVAssetResourceLoaderDelegate 因此我可以拦截该流 我改变了我的计划 从http到一个假方案 以便调用 AVA
  • 戳堆栈

    我试图了解堆栈到底是如何工作的 所以我将在这里重新创建一个带有一些问题的小示例 假设我在 ASM 中有一段小代码 它执行以下操作 这一切都是x86 intel语法 Linux push ebp mov ebp esp sub esp 16
  • 通用视图模型?

    我想知道尝试创建一个采用通用视图模型的视图是否是一种好的做法 我想知道这一点 因为有人提到他预计必须执行大量重复代码 除非他开始制作通用视图和通用视图模型 所以基本上视图就像一组控件 一个视图可能有 2 个控件 例如文本框和单选按钮 另一个
  • pandas 中的 .sum() 方法给出不一致的结果

    我有一个大的 DataFrame 大约 4e 07 行 总结时 我得到2 显着不同的结果我是否做总和之前或之后列选择 另外 类型变化从 float32 到 float64 即使总数均低于 2 31 df col1 col2 col3 sum
  • 如何在同一个 HTML5 播放器中放大视频并切换视频流?

    我的视频将分为 4 个视频 首先 播放器将传输较低分辨率的原始视频 然后用户可以放大视频以查看更多细节 我需要播放器根据用户放大的位置传输 4 个视频之一 分辨率较高 我如何使用 VideoJS 或任何其他视频播放器来实现这一点 经过一番查
  • 为什么我的托管 Django 站点(alwaysdata)无法显示我的页面

    我已经将 Django 部署在总是数据网 http www alwaysdata com 这是我的主页http zjm1126 alwaysdata net http zjm1126 alwaysdata net 我改变index html
  • 在ctrlp + vim中使用ag

    我想将 ag 银色搜索器 与 ctrlp 和 vim 一起使用 我的 vimrc 中有这个 if executable ag set grepprg ag nogroup nocolor let g ctrlp user command a
  • 为什么 *[checked] 在使用 jQuery 的过滤方法时表现得像 :checked ?

    继从上一个问题 https stackoverflow com questions 8673201 why does checked not match a single checked input box 假设我在加载 jQuery 1
  • 使用动态文件名进行复制

    我正在尝试编写一个函数来将 csv 数据加载到表中 我希望输入参数是文件的路径 CREATE OR REPLACE FUNCTION public loaddata filepathname varchar RETURNS void AS
  • 如何检查 Lucene IndexWriter 实例是否有效/打开?

    抱歉这个简单的问题 但似乎没有任何明显的方法 根据文档 建议保留单个实例IndexWriter存储在内存中 可以一次又一次地用于更新 而不是为每次更改打开和关闭一个内存 这要昂贵得多 然而 文档还指出IndexWriter如果发生异常 例如
  • 我们可以在运行时使用语言选择 UI 本地化 WIX msi 和捆绑包吗?

    我们在 Wix 中创建了 MSI 和捆绑包 我需要对这两者进行本地化 以便弹出语言选择 GUI 并且用户可以在运行时选择语言 如果有人能在这方面帮助我 我将不胜感激 对于 MSI 我正在努力创建另一个引导程序 用于启动语言选择组合框 并使用
  • Kendo UI 网格过滤具有多个值的列

    我一直在使用过滤器在我的 KendoUI 网格上成功搜索 然而 一个新的应用程序有一些多值字段 我的过滤不起作用 它实际上似乎永远旋转 多值字段的示例 field rspPersons title Responsible Persons t
  • 如何使用 Moq 模拟 SqlDataReader - 更新

    我是最小起订量和设置模拟的新手 所以我可以得到一些帮助 如何使用 Moq 模拟 SqlDataReader Update 经过进一步测试 这是我目前所拥有的 private IDataReader MockIDataReader var m
  • 将 charset="utf-8" 添加到 HTML 链接元素有什么效果吗?

    我正在处理一个并非由我创作的 HTML 文档 它包含以下内容 以这种方式指定字符集有什么影响 还是字符集是由 Content Type 响应头确定的 The W3C says http www w3 org International qu
  • react-native-firebase crashlytics 未显示在 firebase 仪表板上

    我正在使用 firebase crashlytics 我这样做导致了崩溃 firebase crashlytics crash and I am not seeing the crash report on the firebase das
  • matlab图中的数据提示定制

    我有一个包含多个图的图表 每个图都来自不同的源文件 我希望数据提示告诉我 X Y 加上源文件的名称 长期以来 我最好的尝试 没有成功 是这样的 dcm datacursormode gcf datacursormode on set dcm
  • 画布下方的白色空白区域

    花了几个小时摆弄代码后 我遇到了一个问题 我创建了一个灰色的 HTML 画布 它将填满整个屏幕 并且它起作用了 但是 即使画布应该是屏幕上唯一可见的对象 当我向下滚动时 页面底部似乎仍然有一个小的白色空白区域 我已经知道这与身体无关 因为我
  • 在框架内打开 https 页面是否存在问题

    我以编程方式创建一个 html 报告 分为两个框架 如果用户随后单击右侧框架上的超链接 则该框架将被页面内容替换 这工作正常 但现在当我尝试链接到任何 Discogs 发布页面时 例如this one https www discogs c
  • 帮助解决密码复杂性正则表达式

    我使用以下正则表达式来验证密码复杂性 6 12 0 9 2 A Z 2 a z 2 简而言之 2个小写字母 2个大写字母 2个数字 最小长度为6 最大长度为12 当我使用最小长度时 除了最大长度之外 它工作得很好 例如 6 0 9 2 A