멋쟁이사자처럼 프론트엔드 스쿨 2기 36_Day

aydennote·2022년 5월 23일
0
post-thumbnail

📖 오늘 학습 뽀인트!

  1. 정규식 표현
  2. promise / async, await

1. 정규식 표현

🕵️‍♀️정규식 표현이란?
문자열을 표현하는 데 사용하는 형식 언어이다. 예를들어 "AbbCd123" 이라는 문자열이 있을 때 숫자만 뽑아내거나 대문자, 소문자, 알파벳 등등 필터링해서 결과를 얻고 싶을 때 사용한다.

- `^` : 문자열의 시작 (/^hello/gm : 처음에 hello)
- `$` : 문자열의 종료. 옵션에 따라 문장의 끝 또는 문서의 끝에 매치된다.(/hello$/gm : 끝에 hello)
- `.` : 임의의 한 문자
- `[]`: 문자 클래스. 문자 클래스 안에 들어가 있는 문자는 그 바깥에서 하나의 문자로 취급된다.
    - `^` : 문자 클래스 내에서 ^는 not
    - `-` : ex) a-z는 a에서 z까지의 문자
[a-z] : a ~ z 사이의 문자를 찾음
[1-9] : 1 ~ 9 사이의 문자를 찾음
[abc] : a, b, c중 하나를 찾음
[^abc] : a, b, c를 제외한 문자를 찾음
- `|` : or를 나타냄
- `?` : 앞 문자가 없거나 하나 있음
- `+` : 앞 문자가 하나 이상임
- a+ : a가 1개 이상을 의미함
- `*` : 앞 문자가 0개 이상임
- a* : a가 0개 또는 그 이상을 의미함
- `{n,m}` : 앞 문자가 `n`개 이상 `m`개 이하. `{0,1}` 은 `?`와 같은 의미다.
- `{n,}` : 앞 문자가 `n`개 이상. 위의 형태에서 `m`이 생략된 형태이다. `{0,}` 이면 `*`와 같고 `{1,}` 이면 `+`와 같은 의미이다.
- `{n}` : 앞 문자가 정확히 `n`개. `{n,n}` 과 같은 의미이다.
- `()` : 하나의 패턴구분자 안에 서브 패턴을 지정해서 사용할 경우 괄호로 묶어주는 방식을 사용한다.
- `\s` : 공백문자
- `\b` : 문자와 공백 사이를 의미한다.
- `\d` : 숫자 [0-9]와 같다.
- `\t` : 탭문자
- `\w` : 단어 영문자+숫자+_(밑줄) [0-9a-zA-Z_]문자 이스케이프는 대문자로 적으면 반대를 의미한다.
.z : 아무 문자 하나를 . 기호로 찾으며 z로 끝남을 의미
s : 공백 문자를 찾음(스페이스, 탭 등), 대문자의 경우 아닌 문자를 찾음
d : 숫자를 찾음, 대문자의 경우 아닌 문자를 찾음
w : 알파벳 영문과 숫자와 언더바 _ 기호를 찾음, 대문자의 경우 아닌 문자를 찾음
t : 탭 공간을 찾음
g : 검색범위를 전역으로 확장
i : 대소문자를 구분하지 않음
gi : 검색 범위를 전역으로 확대하면서 대소문자를 구분하지 않음
m : 여러줄을 동시에 매칭함

어느 정도 위 규칙을 암기하고 코딩테스트 문제를 많이 풀어 보는 게 좋을 것 같다.

// 입력된 숫자가 핸드폰 형식과 일치하는지 확인하는 예제
const tel = "010-1234-1238";
const regExp = /[0-9]{3}-[0-9]{4}-[0-9]{4}/g;
regExp.test(tel)                               // true
// 3자리씩 문자열을 반환하는 예제
const str = "My Name Is ayden!!";
const regExp = /.../g;
str.match(regExp)       // ['My ', 'Nam', 'e I', 's a', 'yde', 'n!!']

2. promise / async, await

Node.js 학습하면서 동기, 비동기 처리에 대해 포스팅한 적이 있어 이번 포스팅에 작성하지 않고 아래 지난 포스팅에 내용을 추가했다.
동기, 비동기 참고 포스팅

profile
기록하는 개발자 Ayden 입니다.

0개의 댓글