Blog

[Algorithm]19 str.replaceAll([0-9],"*”) 정규 표현식

Author
Summary
replaceAll과 정규표현식 사용
Category
Study
Tags
Algorithm
Favorite
Memory Date
2023/08/19
Progress Status
Done
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
5 more properties
문자열(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
복사