【问题标题】:regex : minimum total number of digits in a string正则表达式:字符串中的最小总位数
【发布时间】:2016-04-21 07:32:05
【问题描述】:

我想知道本质上类似于密码的字符串中有多少位。

现在我有这个正则表达式:

^(?=.*[0-9]{3,})([a-zA-Z0-9_/+*.-]{6,})$

当它们连续 3 位数字时效果很好,但当它们在整个字符串中分开时效果很好。

我需要能够知道这些字符串中是否有 3 位数字:

h123dasd 1hkh/23jd 1gvbn/*2fefse-

我能做什么?

【问题讨论】:

标签: javascript regex passwords digit


【解决方案1】:

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

/^(?=(?:\D*\d){3,})[a-zA-Z0-9_/+*.-]{6,}$/

这将在您的输入中强制使用 3 位数字,这些数字可能是连续的,也可能不是连续的。

RegEx Demo

【讨论】:

  • 聪明高效
  • 非常感谢 :)
【解决方案2】:

IMO 不需要如此复杂的正则表达式 - 只需从字符串中提取数字,连接匹配项,然后检查长度。比如:

str.match(/\d+/g).reduce((p, c) => p + c).length > 3;

DEMO

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多