일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- useImperativeHandle
- eventloop
- useState
- vscode
- flexbox
- reactDOM
- 리액트작동원리
- useCallback
- 비제어컴포넌트
- virtualDOM
- useReducer
- mysql
- useEffect
- 재귀함수
- BIND
- CSS
- 드림코딩
- MariaDB
- React
- 제어컴포넌트
- js
- SQL
- 변수타입
- ConnectBy
- reactPortals
- useContext
- hoisting
- 프로그래머스
- ForwardRefs
- realDOM
Archives
- Today
- Total
SOOM_BLOG [숨숨 블로그]
[Javascript] 정규 표현식_특수문자, 패턴정리 본문
정규표현식 사용법 정리
1. 정규표현식 매칭 패턴(문자, 숫자, 기호 등)
패턴 | 의미 |
a-zA-Z | 영어알파벳(-으로 범위 지정) |
ㄱ-ㅎ가-힣 | 한글 문자(-으로 범위 지정) |
0-9 | 숫자(-으로 범위 지정) |
. | 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두! 단, 줄바꿈X) |
\d | 숫자 |
\D | 숫자가 아닌 것 |
\w | 영어 알파벳, 숫자, 언더스코어(_) |
\W | /w 가 아닌 것 |
\s | space 공백 |
\S | space 공백이 아닌 것 |
\특수기호 | 특수기호 |
2. 정규표현식 검색 패턴
기호 | 의미 |
[] | 괄호안의 문자들 중 하나 |
[^문자] | 괄호안의 문자를 제외한 것 |
^문자열 | 특정 문자열로 시작(괄호 없음 주의!) |
문자열$ | 특정 문자열로 끝남 |
() | 그룹 검색 및 분류(match메서드에서 그룹별로 묶어줌) |
(?: 패턴) | 그룹 검색(분류X) |
\b | 단어의 처음/끝 |
\B | 단어의 처음/끝이 아님 |
3. 정규표현식 갯수(수량) 패턴
기호 | 의미 |
? | 최대 한번(없음 || 한개) |
* | 없거나 있거나 (없음 || 한개) : 여러개 포함 |
+ | 최소 한개(한개 || 여러개) |
{n} | n개 |
{Min,} | 최소 Min개 이상 |
{Min, Max} | 최소 Min개 이상, 최대 Max개 이하 |
4. 정규표현식 플래그
플래그 | 의미 |
g | Global: 모든 문자 검색(안 쓰면 매칭되는 첫 문자만 검색) |
i | Ignore Case: 대소문자 구분 안함 |
m | Multi line: 여러 행의 문자열에 대해 검색 |
5. 정규표현식 주요 메서드
("문자열").match(/정규표현식/플래그) | "문자열"에서 "정규표현식"에 매칭되는 항목들을 배열로 반환 |
("문자열").replace(/정규표현식/, "대체문자열") | "정규표현식"에 매칭되는 항목을 "대체문자열"로 변환 |
("문자열").split(정규표현식) | "문자열"을 "정규표현식"에 매칭되는 항목으로 쪼개어 배열로 반환 |
(정규표현식).test("문자열") | "문자열"이 "정규표현식"과 매칭되면 true, 아니면 false반환 |
(정규표현식).exec("문자열") | match메서드와 유사(단, 무조건 첫번째 매칭 결과만 반환) |
'문자열'.padEnd(목표 문자열 길이 [, 입력 문자열]) | 끝부터 주어진 문자열로 채워 목표 길이를 만족하는 String |
정규표현식 활용 예시
표현 | 설명 |
/대/ | '대'를 '하나'만 찾는다. |
/대/g | '대'를 '모두' 찾는다. |
/[대a0]/g | '대', 'a', 0 중에 하나를 모두 찾는다. |
/[0-9]/g | '숫자0~9'를 모두 찾는다. |
/[a-zA-Z]/g | '영어알파벳 대문자/소문자'를 모두 찾는다. |
/[^0-9]/g | '숫자0~9'가 아닌 것을 모두 찾는다. |
/[^0-9]/g | '숫자0~9'가 아닌 것을 모두 찾는다. |
자주 쓰이는 정규식 패턴 (출처: https://highcode.tistory.com/6 [HighCode])
- 숫자만 허용: /^[0-9]*$/
- 영문자만 허용: /^[a-zA-Z]*$/
- 한글만 허용: /^[가-힣]*$/
- 영어 & 숫자만 허용: /^[a-zA-Z0-9]*$/
- E-Mail : /^[a-zA-Z0-9]+@[a-zA-Z0-9]+$/
- 휴대폰 : /^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$/
- 일반전화 : /^\d{2,3} - \d{3,4} - \d{4}$/
- 주민등록번호 : /\d{6} \- [1-4]\d{6}/
- IP 주소 : /([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})/
출처: https://curryyou.tistory.com/234 [카레유]
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
'TIL > js' 카테고리의 다른 글
[Javascript] Function 선언과 표현 (feat. 드림코딩 by 앨리) (0) | 2022.03.22 |
---|---|
[Javascript] data types, let vs var, hoisting (feat. 드림코딩 by 엘리) (0) | 2022.03.22 |
[Javascript] Direct(직접) vs Indirect(간접적) 함수 실행 (0) | 2022.03.12 |
[Javascript] Function.prototype.bind() (0) | 2022.02.17 |
[Javascript] EVENT LOOP란? (feat. 코딩애플) (0) | 2022.01.20 |