js判断字符串里是否有连续数字

JavaScript018

js判断字符串里是否有连续数字,第1张

可以利用charAt 上一位与这一位一致就是连续的

function serial(number){

   number = number.toString()

   for (var i = 0  i < number.lengthi++){

       if(i > 0  && number.charAt(i) == number.charAt(i - 1)){

           return true

       }

   }

}

function TestMaxCount(s) {

    var chAry = new Array()

    var cnAry = new Array()

    var i, idx, ch, continueCh = "", continueCn = 1

    var maxCh = "", maxCn = 0

    

    for (i = 0 i < s.length i++) {

        ch = s.slice(i, i + 1)

        if (ch != continueCh) {     // 字符与前一个不同

            if (continueCh != "") {     // 如果前一字符不是空串, 要更新重复数组的最大重复次数值

                idx = GetIndex(chAry, continueCh)

                if (idx == -1) {

                    chAry.push(continueCh)

                    cnAry.push(continueCn)

                }

                else {

                    if (continueCn > cnAry[idx]) {  // 如果新的连续重复次数大于原次数, 进行更新

                        cnAry[idx] = continueCn

                    }

                }

            }

            

            if (continueCn > maxCn) {

                maxCn = continueCn

                maxCh = continueCh

            }

            

            continueCn = 1         // 重复次数归1

            continueCh = ch        // 重复字符置为当前获取到的字符

        }

        else {

            continueCn++

        }

    }

    

    if (continueCh != "") {

        idx = GetIndex(chAry, continueCh)

        if (idx == -1) {

            chAry.push(continueCh)

            cnAry.push(continueCn)

        }

        else {

            if (continueCn > cnAry[idx]) {  // 如果新的连续重复次数大于原次数, 进行更新

                cnAry[idx] = continueCn

            }

        }

        if (continueCn > maxCn) {

            maxCn = continueCn

            maxCh = continueCh

        }

    }

    // 返回资料chAry为字符数组, cnAry为对应字符最大连续次数, maxCh重复次数最多的字符, maxCn重复最多次数

    return { chAry: chAry, cnAry: cnAry, maxCh: maxCh, maxCn: maxCn }

}

function GetIndex(ary, ch) {        // 获得元素在数组中的索引

    var i

    

    for (i = 0 i < ary.length i++) {

        if (ary[i] == ch) {

            return i

        }

    }

    

    return -1

}

var data = TestMaxCount("121211112122222121222")

window.alert(data.maxCh + ": " + data.maxCn)

当然, 应该可以用正则表达式使代码更紧凑.