멋쟁이사자처럼 프론트엔드 스쿨 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개의 댓글

관련 채용 정보