【问题标题】:javascript Regex to have atmost 5 characters in passwordjavascript正则表达式密码最多包含5个字符
【发布时间】:2017-09-05 13:00:45
【问题描述】:

我正在尝试在 JavaScript 中实现最大大小写以进行密码验证。

我有一个场景,密码用户应该输入最多 5 个字符(a-z,A-Z)和没有限制的密码长度

  1. 密码长度无限制
  2. 除了 (a-z,A-Z) ,没有限制
  3. charcter(a-z,A-Z) 在密码中最多有 5 个。不多于这个。顺序无关紧要。

我试过/[^A-Z,a-z]*(?:[A-Z,a-z][^A-Z,a-z]*){0,5}/

但它不起作用。 请帮忙

【问题讨论】:

  • 我不知道你想在这里问什么。
  • 对这类事情的一般建议:不要尝试使用单个正则表达式,不要尝试使用正则表达式进行所有测试。
  • 他希望密码与用户想要的一样长,但少于或等于 5 个字符 [a-zA.Z]。
  • 我需要一个正则表达式来测试我的“密码”,以在任何序列中包含最多 5 个字母(a-z,A-Z)。用户可以以任何数字和序列输入其他内容

标签: javascript regex passwords


【解决方案1】:
【解决方案2】:

您可以像这样计算密码中有多少个字符:

if(password.match(/[a-zA-Z]/g).length > 5){ /* reject */ }

【讨论】:

  • 拒绝 > 5?类型不匹配?
  • @iquellis 不,这正是要求。 charcter(a-z,A-Z) will have atmost 5 in password. Not more than that.
  • 哎呀,是的,你是对的。正在考虑密码策略或某事。像这样。
  • 这是一个正则表达式标志。 g 是全局标志,可让您找到所有匹配项。 (见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
【解决方案3】:

您可以使用以下正则表达式进行密码验证。

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{5,20})

它验证:

  1. 必须包含!数字 [0-9]
  2. 一个小写字符 [a-z]
  3. 一个大写字符 [A-Z]
  4. 一个符号 [@#$%]
  5. 密码长度必须在 [5-20] 之间。

【讨论】:

  • 我需要一个正则表达式来测试我的“密码”以在任何序列中包含最多 5 个字母(a-z,A-Z)。用户可以输入任何数字和序列中的其他内容。我可以获得特定的正则表达式而不是结合
  • 你能举例说明你的密码是什么样的吗?@SudhanshuAgarwal
【解决方案4】:

分解,一步一步解决

仅字母 - 定义您的字符集

/[A-Za-z]/

最大长度为 5 - 使用量词

/[A-Za-z]{0,5}/

不允许其他任何内容 - 用 ^ 和 $ 包装它

/^[A-Za-z]{0,5}$/

【讨论】:

  • 我需要一个正则表达式来测试我的“密码”以在任何序列中包含最多 5 个字母(a-z,A-Z)。用户可以输入任何数字和序列中的其他内容。我可以为我的特定正则表达式要求?这只会测试最多 5 个字符的字符串,没有其他输入。但在我的情况下,最多 5 个字符,任何数量或其他输入序列
  • 对不起伙计,我一开始没明白你的问题。 Bellian 的解决方案是最好的解决方案,但如果 password.match(/[a-zA-Z]/g) 在密码中找不到任何 a-zA-Z 字符时返回 null
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 2018-09-17
  • 2016-12-12
  • 2022-01-17
  • 1970-01-01
  • 2014-04-10
相关资源
最近更新 更多