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

时间:2019-02-03 22:01:58

标签: javascript regex digits

我要测试所有字母数字字符的字符串,并且仅当字符串中的数字总数在7到11之间时才返回true。

  

1234567 //是

     

11qqw3qd1221wqd2132 //是

     

abc123def456ghi789klm012 //错误

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

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

^[\d]{7,11}$

但是在以下情况下我该怎么做?

A)数字不必连续且

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

1 个答案:

答案 0 :(得分:2)

尝试一下

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]*$/)