반응형

정규식 비밀번호 체크 자바스크립트 


비밀번호 설정 규칙

* 10자~12자리의 영문(대소문자)+숫자+특수문자 중 2종류 이상을 조합하여 사용할 수 있습니다.

* 아이디와 중복되는 패스워드는 사용이 불가능 합니다.

* 동일한 숫자 또는 문자를 3번이상 연속으로 사용할 수 없습니다.


아래와 같이 스크립트를 작성하면 됩니다.

 function chekPassword(){

var mbrId = $("#mbrId").val();   // id 값 입력

var mbrPwd = $("#mbrPwd").val();  // pw 입력

var check1 = /^(?=.*[a-zA-Z])(?=.*[0-9]).{10,12}$/.test(mbrPwd);   //영문,숫자

var check2 = /^(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,12}$/.test(mbrPwd);  //영문,특수문자

var check3 = /^(?=.*[^a-zA-Z0-9])(?=.*[0-9]).{10,12}$/.test(mbrPwd);  //특수문자, 숫자

if(!(check1||check2||check3)){

alert("사용할 수 없은 조합입니다.\n패스워드 설정안내를 확인해 주세요.");

return false;

}

if(/(\w)\1\1/.test(mbrPwd)){

alert('같은 문자를 3번 이상 사용하실 수 없습니다.\n패스워드 설정안내를 확인해 주세요.');

return false;

}

if(mbrPwd.search(mbrId)>-1){

alert("비밀번호에 아이디가 포함되었습니다.\n패스워드 설정안내를 확인해 주세요.");

return false;

}

return true;

}


호출

chekPassword(); //패스워드 설정 확인



반응형
반응형

Array constants can only be used in initializers

배열 상수는 초기화에 사용할 수 있습니다.

[배열 선언]

String[] arr = new String [3];  //배열 선언

arr = {"XX", "YY, "ZZ"};         //배열 초기값 

일반적으로 자바에서 선언 하는 방식입니다. 

String[] arry = {"XX", "YY, "ZZ"}; 

이 방식은 자바 표준 선언 방식이 아닙니다. 


이 코드는 다른 언어 (C언어) 등을 사용하는 사람들을 위해 호환성을 살린 부분 이라고 합니다. 

자바는 C언어처럼 포인터를 직접 사용하지 않기 때문에 객체 선언 new 를 사용하여 동적 메모리 할당 영역에 메모리를 잡는 방법을 사용합니다.

[정규식]

String[] arry = new String []{"XX", "YY", "ZZ"};

위와 같이 선언이 정규식 코드 방식입니다. 


String[] arry = {"XX", "YY, "ZZ"};  식이 비정규식인지를 확인 해 볼수 있는 코드 구분을 예로 들어 보겠습니다. 

IF구문을 이용해서 확인해 볼수 있습니다. 

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = {"XX", "YY, "ZZ"}; 

}else{

 arry = {"XX1", "YY1, "ZZ1"}; 

}

이화 같이 선언을 해도 에러가 없을 것 같지만 바로 빨간 줄이 들어옵니다. 

요즘은 좋은 툴들이 많아서 이클립스 등의 툴로 위 와 같이 코드를 쓰면 바로 오류인걸 확인 할 수 있습니다. 


위코드는 다음과 같이 수정을 하면 됩니다.

int ifvalue = 1;

String[] arry = null;

if ( ifvalue ==0) { 

  arry = new String []{"XX", "YY, "ZZ"}; 

}else{

 arry = new String []{"XX1", "YY1, "ZZ1"}; 

}

new String[] 구분을 넣어 주면 바로 코드를 정상으로 인식합니다. 

이 간단한 코드로 어떤 표현이 정규식인지 바로 알 수 있습니다. 


반응형

+ Recent posts