我要测试所有字母数字字符的字符串,并且仅当字符串中的数字总数在7到11之间时才返回true。
1234567 //是
11qqw3qd1221wqd2132 //是
abc123def456ghi789klm012 //错误
最小7和最大11仅适用于字符串中的数字。
所以我知道如何测试一串数字的最小和最大长度:
^[\d]{7,11}$
但是在以下情况下我该怎么做?
A)数字不必连续且
B)字符串中还有其他字符或空格。
答案 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]*$/)