regex:字符串中的最小数字总数

regex : minimum total number of digits in a string

本文关键字:小数 数字 字符串 regex      更新时间:2023-09-26

我想知道一个本质上像密码的字符串中有多少数字。

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

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

当它们是一行中的3位数字时,效果很好,但当它们在整个字符串中分离时,效果就不好了。

我需要能够知道字符串中是否有3个数字,比如:

h123dasd1小时/23日1gvn/*2缺陷-

我能做什么?

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

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

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

RegEx演示

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

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

演示