正则表达式:字符串中的最小总位数

时间:2016-04-21 07:32:06

标签: javascript regex passwords digit

我正在尝试知道字符串中有多少位数,基本上就像是密码。

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

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

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

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

  

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

我该怎么办?

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

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

这将在输入中强制执行3个数字,可能连续也可能不连续。

RegEx Demo

答案 1 :(得分:0)

不需要这么复杂的正则表达式IMO - 只需从字符串中提取数字,连接匹配,然后检查长度。类似的东西:

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

DEMO