✍ Today I Learned
- [정규 표현식 Regular Expression]
- 정규 표현식이란? 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 패턴이다.
/검색패턴/플래그
search(/str/flag)
- 해당 문자열에서 인수로 전달받은 정규 표현식과 일치하는 첫 번째 문자열의 인덱스를 반환, 찾지 못하면 -1 반환indexOf()
와 다른 점은?search()
는 시작 위치를 지정할 수 없다indexOf()
는 정규표현식을 사용할 수 없다
replace(/str/flag)
- 지정된 값을 다른 값으로 바꾸고 새 문자열로 반환. 첫 일치 항목만 대체하고, 대소문자를 구분한다. 정규식을 함께 사용하면 더 편리하다.match(/str/flag)
- 해당 문자열에서 인수로 전달받은 정규 표현식과 일치하는 문자열을 찾아서 하나의 배열로 반환i
- 대소문자 구별하지 않고 검색g
- 일치하는 모든 부분 검색m
- 문자열이 여러 줄이어도 그대로 검색pattern.test('strValue')
- 문자열에서 패턴을 검색하고 결과에 따라 true 또는 false를 반환pattern.exec('strValue')
- 문자열에서 지정된 패턴을 검색하고 찾은 텍스트를 객체로 반환, 없으면 null 객체 반환
- 정규 표현식이란? 특정한 규칙을 가지는 문자열의 집합을 찾아내기 위한 패턴이다.
[Brackets]
괄호 | 설명 |
a(b)c | 전체 패턴을 검색한 후에 괄호 안에 명시된 문자열을 저장함. (ex : "abc"를 검색한 후에 b를 저장함.) |
[abc] | 꺾쇠 괄호([]) 안에 명시된 문자를 검색함. (ex : "abc"를 검색함.) |
[0-3] | 꺾쇠 괄호([]) 안에 명시된 숫자를 검색함. (ex : 0부터 3까지의 숫자를 검색함.) |
[\b] | 백스페이스 문자를 검색함. |
{n} | 앞의 문자가 정확히 n번 나타나는 경우를 검색함. n은 반드시 양의 정수이어야만 함. |
{m,n} | 앞의 문자가 최소 m번 이상 최대 n번 이하로 나타나는 경우를 검색함. m과 n은 반드시 양의 정수이어야만 함. |
[Metacharacter]
특수 문자 | 설명 |
\ | 역슬래시(\) 다음에 일반 문자가 나오면 이스케이프 문자로 해석하고, 특수 문자가 나오면 일반 문자로 해석함. |
\d | 숫자를 검색함. /[0-9]/와 같음. |
\D | 숫자가 아닌 문자를 검색함. /[^0-9]/와 같음 |
\w | 언더스코어(_)를 포함한 영문자 및 숫자를 검색함. /[A-Za-z0-9_]/와 같음. |
\W | 언더스코어(_), 영문자, 숫자가 아닌 문자를 검색함. /[^A-Za-z0-9_]/와 같음. |
\s | 띄어쓰기, 탭, 줄 바꿈 문자 등의 공백 문자를 검색함. |
\S | 띄어쓰기, 탭, 줄 바꿈 문자 등의 공백 문자가 아닌 문자를 검색함. |
\b | 단어의 맨 앞이나 맨 뒤가 패턴과 일치하는지를 검색함. |
\xhh | 16진수 hh에 해당하는 유니코드 문자를 검색함. |
\uhhhh | 16진수 hhhh에 해당하는 유니코드 문자를 검색함. |
[Quantifier]
괄호 | 설명 |
n* | 바로 앞의 문자가 0번 이상 나타나는 경우를 검색함. /{0, }/와 같음. |
n+ | 바로 앞의 문자가 1번 이상 나타나는 경우를 검색함. /{1, }/과 같음. |
n? | 바로 앞의 문자가 0번 또는 1번만 나타나는 경우를 검색함. /{0,1}/과 같음. |
정규 표현식에 관한 참고자료( TCP School / Dev Scroll )
- [Object]
- 객체를 생성할 때 가독성, 수행 속도 등의 이유로
new
키워드는 사용하지 않는 것이 좋다. JSON.stringify()
를 사용하면 객체나 배열을 문자열로 변환할 수 있다.- getter로 객체의 값에 접근하고 setter로 객체의 값을 설정할 수 있다.
- 이렇게 하는 이유는 보다 간단한 구문을 사용할 수 있고, 더 나은 데이터 품질을 확보할 수 있기 때문이다.
- 객체를 생성할 때 가독성, 수행 속도 등의 이유로
- [생성자 함수 Constructor function]
- 생성자 함수는 재사용할 수 있는 객체 코드를 구현한다.
- 함수 이름의 첫 글자는 대문자로 시작하고, 반드시
new
연산자를 붙여 실행한다. - 모든 객체는 기본적으로
constructor
를 가지고 있다. 나타나 있지 않을 뿐이다. - 생성자 함수에 관한 참고자료
- [프로토 타입 Prototypes]
- 자바스크립트의 모든 객체는 프로토타입이라는 객체를 가지고 있고, 모든 객체는 그들의 프로토타입으로부터 프로퍼티와 메서드를 상속받는다.
- 프로토타입 속성을 사용하면 생성자에 새 속성을 추가할 수 있다.
- [Set]
- Set의 타입은 객체이기 때문에
typeof
연산자 대신mySet instanceof Set
을 사용하면 true or false를 반환한다.
- Set의 타입은 객체이기 때문에
'📝 TIL' 카테고리의 다른 글
[TIL] JS 숫자 야구 게임, BOM, 쿠키 (0) | 2022.04.25 |
---|---|
[TIL] JS 함수, 클로저, call(), apply(), bind(), 구조분해할당 (0) | 2022.04.22 |
[TIL] JS 클래스, JSON (0) | 2022.04.20 |
[TIL] JS 퀴즈 파티 (0) | 2022.04.19 |
[TIL] JS 데이터 타입, 형변환, 호이스팅, 엄격모드, this (0) | 2022.04.18 |