문자열(String)은 substring을 통해 자리수를 잘라서 원하는대로 커스터마이즈 하도록 선택 할 수 있다.
그 중 replaceAll을 통해 문자열을 교체 할 수 있는데, 특히 "[0-9]”와 같은 표현을 넣어서 “*”를 대입 시키는 모습이다.
이것은 예전에 로그인 등 기능 구현 시 유효성체크에서 사용했던 기억이 있다. 하지만 생각보다 문법이 기억하기 쉽지 않고 특수 기호처럼 되어 있어서 확연하게 기억나지는 않았다. 물론 외우면 좋겠지만 생각보다 패턴화되있어서 이렇게 써야겠다고 파일로 정리해둔것이 있는데 그 부분을 찾아와봤다.
생각보다 핵심 부분은
/*
^ : 시작을 의미
$ : 끝을 의미
a-z: 알파벳 소문자
A-Z: 알파벳 대문자
0-9: 아라비아 숫자
_ : _
! : !
+ : 패턴문자가 1개 이상 올 수 있음을 의미
{4}: 4자리까지만 가능
{4,}: 4자리 이상 가능
{4,8}: 4~8자리까지 가능
가-힣 : 한글을 의미
*/
이정도로 정리하면 될 것 같다. 이것 만들어주는 서비스 웹페이지도 있었다. 정규식을 넣고, 입력 할 수 있는 칸에서 ajax로 실시간 체크가 되는 사이트였는데 어디더라.
기본적으로 회원 가입 양식의 js파일에서 프론트엔드단의 유효성 체크에서 사용했던 정규 표현식들이었다. 이것을 모두 외우면 좋지만.. 어디서 찾아야 되는지 아는것이 더 중요하지 않을까. 얼추 ^는 시작, $로 끝나는게 중요하고 [ ] 로 감싸고 뭐 엄청 복잡하다 사실.. 암호해독수준 궁금한게 이걸 다외우나? 코딩테스트를 위해서는 외어야하는건가?? 혼란스럽다. 기본기의 영역은 어디까진지 감이안온다.
/**
asdf-12cd@naver.com
adff.my@daum.net
asdf12@google.co.kr
*/
function isEmail(input){
let val=input.value;
let pattern=/^[\w-_]+(\.[\w]+)*@([a-zA-Z]+\.)+[a-z]{2,3}$/;
let b=pattern.test(val);
//alert('email '+b);
return b;
}
function isDate(input){
let val=input.value;
let pattern=/^\d{4}[-\/](0[1-9]|1[012])[-\/](0[1-9]|[12][0-9]|3[01])$/;
let b=pattern.test(val);
//alert(b);
return b;
}//------------------------
/**
\b : 단어의 경계를 나타내며, 해당 패턴이 정확하게 일치해야 함을 의미
(010|011) : 010 또는 011이 와야 함을 의미
\d{3,4} : 숫자가 3개이상 4개 이하 나와야 함을 의미
\d{4}: 숫자가 4자 나와야 함을 의미
*/
function isMobile(input1,input2, input3){
let val=input1.value+"-"+input2.value+"-"+input3.value;
//alert(val);
let pattern=/\b(010|011)[-]\d{3,4}[-]\d{4}\b/;
let b=pattern.test(val);
//alert('hp '+b);
return b;
}
/*
\w : 알파벳대소문자,숫자
\. : 마침표
! : 느낌표
{4,8}: 4~8자리
*/
function isPasswd(input){
let val=input.value;
let pattern=/^[\w!\.]{4,8}$/;
let b=pattern.test(val);
//alert('pwd '+b);
return b;
}
/*
^ : 시작을 의미
$ : 끝을 의미
a-z: 알파벳 소문자
A-Z: 알파벳 대문자
0-9: 아라비아 숫자
_ : _
! : !
+ : 패턴문자가 1개 이상 올 수 있음을 의미
{4}: 4자리까지만 가능
{4,}: 4자리 이상 가능
{4,8}: 4~8자리까지 가능
*/
function isUserid(input){
let val=input.value;
//let pattern=/^[abc]+$/; //a or b or c
let pattern=/^[a-zA-Z]{1}[a-zA-Z0-9_!]{3,7}$/;
let b=pattern.test(val);
//alert(b);
return b;
}
/**
^ : 시작을 의미
$ : 끝을 의미
가-힣 : 한글을 의미
+ : 패턴이 한 번 이상 반복된다는 의미
*/
function isKor(input){
let val=input.value;
//let pattern=new RegExp(/multi/g);// multi문자열이 있는지 여부를 체크하는 패턴
//let pattern=/multi/g
let pattern=/^[가-힣]+$/;
let b=pattern.test(val); //정규식 패턴에 맞으면 true를 반환하고, 틀리면 false를 반환한다
//alert(b);
return b;
}
Java
복사