개발자의 끄적끄적

[javascript] 연속된 글자 체크 함수 : 1234 or 1111 (숫자, 알파벳 지원) [펌] 본문

개발/javascript & jquery

[javascript] 연속된 글자 체크 함수 : 1234 or 1111 (숫자, 알파벳 지원) [펌]

효벨 2020. 2. 2. 03:00
728x90
반응형

[javascript] 연속된 글자 체크 함수 : 1234 or 1111 (숫자, 알파벳 지원) [펌]

 

// 연속된 글자 체크 함수 : 1234 or 1111 (숫자, 알파벳 지원)

function kin4(str, max){
    if(!max) max = 4; // 글자수를 지정하지 않으면 4로 지정
    var i, j, k, x, y;
    var buff = ["0123456789", "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"];
    var src, src2, ptn="";

    for(i=0; i<buff.length; i++){
        src = buff[i]; // 0123456789
        src2 = buff[i] + buff[i]; // 01234567890123456789
        for(j=0; j<src.length; j++){
            x = src.substr(j, 1); // 0
            y = src2.substr(j, max); // 0123
            ptn += "["+x+"]{"+max+",}|"; // [0]{4,}|0123|[1]{4,}|1234|...
            ptn += y+"|";
        }
    }
    ptn = new RegExp(ptn.replace(/.$/, "")); // 맨마지막의 글자를 하나 없애고 정규식으로 만든다.

    if(ptn.test(str)) return true;
    return false;
}

// 테스트
var buff = ["abc1234", "aabb123", "333111222", "Hello", "3335555512", "318371", "", "3334567111"];
var rst;
for(var i=0; i<buff.length; i++){
    rst = chkContStr(buff[i]);
    document.write(buff[i] + " = " + rst + "<br>");
}

반응형
Comments