본문으로 바로가기

1. 연속된 문자 체크용 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*********************************************************************************************
 *  Function명 : stck()
 *  설명       : 정규식(비밀번호 체크용)
*********************************************************************************************/
function stck(str, limit) {
 
    var o, d, p, n = 0, l = limit == null ? 4 : limit;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        if (i > 0 && (p = o - c) > -2 && p < 2 && (n = p == d ? n + 1 : 0> l - 3
            return false;
            d = p, o = c;
    }
    return true;
}
cs

 

2. 해당 함수를 이용한 연속된 문자 사용 제한 및 6~20자리 영문자, 숫자 혼합 제한 체크

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        //비밀번호 규칙 설정
        //6~20자리 문자열 숫자와 문자와 같이 있어야 함
        var regexPw = /^.*(?=.{6,20})(?=.*[0-9])(?=.*[a-zA-Z]).*$/;
        var input = "asdf3211a";
 
        if(input != this.ds_list.getColumn(0,"USER_PW_CONFIRM")){
            this.util.alert("비밀번호가 일치 하지 않습니다.\n동일한 비밀번호를 입력해 주세요.");
            return false;
        }
        
        if (regexPw.test(input)) {
            //연속된 숫자 테스트
            var regexNo = /(\w)\1\1/;
            if (!regexNo.test(input)) {
                if (!stck(input, 3)) {
                    this.util.alert("연속된 3자리 문자는 사용할 수 없습니다."); 
                    return false;
                }
            }
            else {
                this.util.alert("3개 이상의 동일한 문자는 사용할 수 없습니다."); 
                return false;
            }
     
        } else {
            this.util.alert("비밀번호는 영문과 숫자를 혼합하여 \n6자리 이상 20글자 미만으로 설정해주세요."); 
            return false;
        }
cs