【问题标题】: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