密码强度计

2024-04-22

我正在尝试创建自己的 JS 密码强度计。

它之前可以工作,但我不喜欢它的工作方式,所以我尝试使用

{score +=10;}

而不仅仅是:

score++

这是我的代码:http://jsfiddle.net/RSq4L/ http://jsfiddle.net/RSq4L/

此致, 肖恩,

希望有人可以帮忙


多个问题:

  1. 您的 passwordStrength() 函数未在 jsFiddle 的全局范围内定义,因此不会被调用。这可能是您设置 jsFiddle 的方式造成的,也许在您的实际代码中不是问题。
  2. 获取适当的 ratingMsg 的方法将不起作用,因为您没有每个可能分数的数组值,因此许多分数将生成“未定义”的 ratingMsg。
  3. 您的 CSS 类也很稀疏,因此有许多分数值与两者都不匹配,并且没有适当的 CSS 类/样式生效。如果您想要每个评级值都有一个特定的类,那么也许您应该将类​​名放入 ratings 数组中,以便可以从那里与 ratingsMsg 一起获取它。

对于第一个问题,在 jsFiddle 中,您还必须确保密码处理函数是在全局范围内定义的。您的 jsFiddle 设置方式并非如此(它位于 onload 处理程序中)。您可以在 jsFiddle 中修复此问题,只需将左上角的第一个下拉列表设置为“无换行(头部)”即可。

对于第二个问题,您正在使用:

ratingMsg[score]

但是,您的数组是一个稀疏数组,不能保证包含大多数可能分数的条目。您根本不能这样做,因为您访问的许多元素将具有未定义的值,这不会给您提供有意义的消息。例如,如果分数为 15,您将访问 ratingMsg[15],但数组中的该空间没有值,因此您不会获得有意义的评级消息。

解决方案是找到一种不同的方式来选择正确的消息。最简单的方法就是使用 if/else if/else if 语句来检查分数在哪个范围内并设置适当的消息。有更优雅的表驱动方法,但所有方法都将涉及搜索数据结构以查找当前分数位于哪两个值之间并使用该消息。

如果你看这个 jsFiddlehttp://jsfiddle.net/jfriend00/dA7XC/ http://jsfiddle.net/jfriend00/dA7XC/,您会看到您的代码被调用,但有时它只命中数组中的值。

而且,这是一个重写的算法,无论这个小提琴中显示的分数如何,它都能找到适当的消息:http://jsfiddle.net/jfriend00/jYcBT/ http://jsfiddle.net/jfriend00/jYcBT/.

它使用这样的数据结构:

  var ratingMsg = [
      0, "Unclassified",
      10, "Weak",
      20, "Fair",
      50, "Better",
      60, "Medium",
      70, "Good",
      90, "Strong"
  ];

和这样的 for 循环以获得适当的评级 Msg:

  for (var i = ratingMsg.length - 2 ; i >= 0; i-=2) {
      if (score >= ratingMsg[i]) {
          msg = ratingMsg[i+1];
          break;
      }
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码强度计 的相关文章

随机推荐

  • 无法解析包含单引号的json数据

    Problem 我的一些 json 数据出现解析错误 因为它包含单引号 例如 我的一些数据可能如下所示 拉里的数据 我读过以下文章 JSON 响应中的 jQuery 单引号 https stackoverflow com questions
  • 由于“erf”函数使用率较高而导致性能瓶颈

    我使用大型矩阵 100x100 到 3000x3000 进行一些计算 大量求和和矩阵向量乘法 我使用 Eigen 库来处理向量和矩阵 我的代码是简单的类似 C 的代码 只有函数 没有类 并将被编译为 DLL 以在 Excel 上使用 我发现
  • 无法安装 kubernetes helm Chart 错误:无法重复使用仍在使用的名称

    无法安装 helm 图表 但当我使用 helm 生成的原始文件时 我可以通过 kubectl apply 安装 当我使用时显示以下错误helm install myChart debug Error cannot re use a name
  • 如何在运行时设置系统属性 Spring 3 MVC

    目前我们有下面的 bean 定义来设置 javax net ssl trustStore
  • Angular JS UI-网格删除行

    我是新来的ui grid我正在尝试在 AngularJS 中实现一个表格 如下图所示 我正在尝试选择一行并使用该特定行上的删除按钮将其删除 这ui grid文档要求我们使用gridApi但我找不到足够的文档 请在此处查看如何删除行的工作示例
  • 如何组合两个css3渐变?

    我有两个用于 HTML BODY 背景的 CSS 我使用这个 css 作为我页面的背景 我想将这两个重叠并获得组合效果 IE10 Consumer Preview background image ms linear gradient to
  • 连接到 atlas mongo 数据库

    我正在使用node Js expressjs mongodb 和 Atlas var Db require mongodb Db var Server require mongodb Server 上面的方法对我不起作用 通过使用atlas
  • 如何在 WPF 窗口中显示屏幕保护程序的预览

    我希望能够在 WPF 窗口内显示屏幕保护程序的预览 使用容器或控件或 我知道Windows本身将 p 参数传递给屏幕保护程序以获取预览 但是如何在 WPF 应用程序中显示该预览呢 我应该获取它的句柄并将其父级更改为我的容器或控件吗 如何 您
  • python 中单词的动名词形式

    我想获得字符串的动名词形式 我还没有找到调用库来获取动名词的直接方法 我应用了以 ing 结尾的单词的规则 但是因为异常导致我收到了一些错误 然后 我检查 cmu 单词以确保生成的动名词单词正确 代码如下 import cmudict im
  • 返回参数的类型名查找

    最近有一个学生问我一个编译问题 答案很简单 但现在我正在努力寻找原因 一个简单的例子 include
  • 获取 Jenkins 多分支管道中的分支列表

    Jenkins 多分支管道项目的 Blue Ocean 界面显示了自动创建的多个分支 是否有一种编程方式可以从要添加到 Jenkinsfile 的代码中列出管道中的分支 此问题询问位于 Jenkins 应用程序对象模型内的 Jenkins
  • 模板化成员函数的地址[重复]

    这个问题在这里已经有答案了 在下面的例子中 如何找到成员函数f的地址 template
  • 时间戳格式 - 从 1/1000 秒到 1/100 秒

    需要将1 1000秒分辨率的时间戳转换为1 100分辨率 我可能会用to char timestamp text 用于此目的的格式化功能 但是需要帮助text在这里使用 输入表 注意 这里的时间戳存储为 varchar ms1000 val
  • 复杂对象上的自定义 NSSortDescriptor

    这是我的第一篇文章 如果我可能不尊重所有惯例 我很抱歉 尽管我会尽力而为 我以前总是在 SO 上找到解决我的问题的方法 但我完全陷入了一个相当复杂的可可问题 我正在尝试对 CoreData 对象列表进行复杂的排序 我有一个由 Book 对象
  • Jquery:停止传播?

    我已经添加了 stopPropagation 但是 我仍然连续出现两个弹出窗口 这比以前好多了 其中一个被单击的元素有 20 个弹出窗口 是否有更好的方法或者我错过了什么 top document ready function click
  • 如何在 Android 浏览器上阻止某些网址?

    如何在 Android 默认浏览器上阻止某些网址 网站 我想限制用户访问某些列入黑名单的网址 例如 如果我想阻止 Facebook 那么手机内置应用程序浏览器将无法访问此 Facebook 网站 您想通过让用户安装应用程序来阻止用户设备上的
  • 使用 shutdown 终止 Amazon EC2 实例

    我可以使用 API 命令终止 Amazon EC2 实例ec2 终止实例但我试图找出如何在登录到 EC2 实例本身时执行此操作 我试过了立即关闭 h但这只是 停止 实例 而没有完全终止它 有什么办法可以做到这一点吗 您可以在创建实例时设置一
  • tkinter 无法正确识别屏幕分辨率

    我使用的是 4k 显示器 3840x2160 from tkinter import root Tk width root winfo screenwidth height root winfo screenheight print wid
  • MVC DropDownList SelectedValue 未正确显示

    我尝试搜索 但没有找到任何可以解决我的问题的内容 我在 Razor 视图上有一个 DropDownList 它不会显示我在 SelectList 中标记为 选定 的项目 以下是填充列表的控制器代码 var statuses new Sele
  • 密码强度计

    我正在尝试创建自己的 JS 密码强度计 它之前可以工作 但我不喜欢它的工作方式 所以我尝试使用 score 10 而不仅仅是 score 这是我的代码 http jsfiddle net RSq4L http jsfiddle net RS