06. JS 정규표현식

CHOISUJIN·2023년 3월 1일
0
post-thumbnail

🌟 정규표현식 Regular Expression

  • 특정한 규칙을 가진 문자열 집합을 표현하는데 사용하는 형식 언어
  • 정규표현식을 이용하면 입력된 문자열에 대한 특정 조건 검색, 일치 여부 판단, 치환에 대한 조건문을 간단히 처리할 수 있다!!

[참고 사이트]
1. 정규표현식 테스트 사이트
2. 정규표현식 설명 - MDN
3. 작성한 정규표현식을 그림으로 나타내주는 사이트

🔍 정규표현식 객체 생성 방법

  • const regExp = new RegExp("정규표현식");
  • const regExp = /정규표현식/; -> 양쪽 '/' 기호 정규 표현식 리터럴 표기법

🔍 문자열 패턴 확인 메서드(함수)

  • regExp.test(문자열) : 문자열에 정규표현식과 일치하는 패턴이 있을 경우 true, 없으면 false
  • regExp.exec(문자열) : 문자열에 정규표현식과 일치하는 패턴이 있을 경우, 처음 매칭되는 문자열을 반환, 없으면 null 반환
<button id="check1">확인하기(콘솔)</button>

<script>
  document.getElementById("check1").addEventListener("click", function () {
  // 정규표현식 객체 생성
  const regEx1 = new RegExp("script");
  // "script"와 일치하는 문자열이 있는지 검사하는 정규식 객체

  const regEx2 = /java/;
  // "java"와 일치하는 문자열이 있는지 검사하는 정규식 객체

  const str1 = "저희는 지금 javascript를 공부하고 있습니다.";
  const str2 = "java, db, html, css, js 를 사용 중 입니다.";
  
  console.log(regEx1.test(str1)); // true
  console.log(regEx1.test(str2)); // false
  
  console.log(regEx2.test(str1)); // true
  console.log(regEx2.test(str2)); // true
  
  console.log(regEx1.exec(str1)); // script
  console.log(regEx1.exec(str2)); // null
  
  console.log(regEx2.exec(str1)); // java
  console.log(regEx2.exec(str2)); // java
</script>
 

🔍 정규표현식 메타 문자

a (일반문자열) : 문자열 내에 a라는 문자열이 존재하는지 검색
[abcd] : 문자열 내에 a,b,c,d 중 하나라도 일치하는 문자가 있는지 검색
^ (캐럿) : 문자열의 시작을 의미
$ (달러) : 문자열의 끝을 의미

\w (word, 단어) : 영어 아무 글자(단, 띄어쓰기, 특수문자, 한글 X)
\d (digit, 숫자) 아무 숫자(0~9 중 하나)
\s (space, 공간) : 아무 공백 문자(띄어쓰기, 엔터, 탭 등)

[0-9] : 0부터 9까지 모든 숫자
[ㄱ-힣] : ㄱ부터 힣까지 모든 한글(자음, 모음, 자+모음, 받침)
[가-힣] : 자음, 모음만 작성되는 경우를 제외한 한글

[a-z] : 모든 영어 소문자
[A-Z] : 모든 영어 대문자

* 수량 관련 메타 문자
a{5} : a문자가 5개 존재 == aaaaa
a{2,5} : a가 2개 이상 5개 이하 == aa, aaa, aaaa, aaaaa
a{2,} : a가 2개 이상
a{.5} : a가 5개 이하

* : 0개 이상 == 0번 이상 반복 == 있어도 되고, 없어도 되고
+ : 1개 이상 == 1번 이상 반복
? : 0개 또는 1개
. : 1칸(개행문자 제외한 문자 하나)

* 자주쓰는 정규표현식

📍 이름 유효성 검사

  • 한글 2글자 이상, 6글자 이하의 문자열
  • 단자음 / 모음은 제외
const regEx = /^[가-힣]{2,6}$/; 
profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ

0개의 댓글