JS正则表达式,限制最大重复次数

  • 给定字符串 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);
}

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

阅读 8k
2 个回答

稍微改造一下,使用正则表达式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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题