正则表达式检查具有最小值和最大值的总位数

Regex to check for total number of digits with a min and max

我想测试所有字母数字字符的字符串,并且 return 只有当字符串中的数字总数在 7 到 11 之间时才为真。

1234567 // true

11qqw3qd1221wqd2132 // true

abc123def456ghi789klm012 // false

最小 7 和最大 11 仅适用于字符串中的数字。

所以我知道如何测试一串数字的最小和最大长度:

^[\d]{7,11}$

但是当 :

我该如何做同样的事情

A) 数字不必连续并且

B) 字符串中有其他字符或空格。

试试这个

var str = "...";
var digits = str.length - str.replace(/[0-9]/g, '').length;
var ok = digits >=7 && digits <=11;

或者这个

str.match(/^([^0-9]*[0-9]){7,11}[^0-9]*$/)