0
  • 给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),只少重复三次,最多五次
    包含返回 true,否则返回 false
var str = 'adsgdddddddddddsfd';
isRepeatNum(str);
function isRepeatNum(str) {
    var reg = new RegExp('([a-zA-Z])(\\1){2,4}');
    return reg.test(str);
}

这么写只能限制最少重复次数,不能限制最大重复次数,请问如何修改才能实现限制最大次数

2个回答

0

暂时没有想到用一个正则的方法,可以再用一个类似'([a-zA-Z])(\\1){5,}'的去判断是否有超过5次的。

0

稍微改造一下,使用正则表达式match方法,如下

function isRepeatNum(str) {
    var reg = new RegExp('([a-zA-Z])((\\1)+)');
    var m = str.match(reg);
    if(m && m[2]) {
        return m[2].length >= 2 && m[2].length <= 4;
    }
    return false;
}
isRepeatNum('adsgadd'); // false
isRepeatNum('adsgaddd'); // true
isRepeatNum('adsgadddd'); // true
isRepeatNum('adsgaddddd'); // true
isRepeatNum('adsgadddddd'); // false

撰写答案