코딩이란 무엇일까

50일차[JavaScript](1)-정규식 본문

국비지원수업

50일차[JavaScript](1)-정규식

둥구는 지굴다 2023. 1. 3. 20:19

정규표현식이란?(Refular Expression :Regex)

정규식은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는 데 사용된다.

예를 들어 회원가입을 할 때 아이디, 비밀번호에 입력하라고 했을 때

올바르지 않은 값을 입력하면 정규표현식에 의해 필터링되어

다시 입력하라는 경고창이 뜨는 것을 볼 수 있다.

이아 같이 반복문, 조건문을 사용해야 할 복잡한 코드를 정규표현식을 이용하면

매우 간단하게 표현할 수 있다.

정규표현식의 단점으로는 주석,공백을 허용하지 않고 여러 가지 기호를 혼합하여 사용하기 때문에 가독성이 진짜 떨어진다.

정규표현식을 공부하면서 만든사람이 정말 궁금하다

정규식 메서드

정규식에서 사용되는 메서드이다.

메서드 의미

메서드 의미
(”문자열”).match(/정규표현식/플래그) “문자열”에서 “정규표현식”에 매칭되는 항목들을 배열로 반한
(”문자열”).replace(/정규표현식/,”대체문자열”) “정규표현식”에 매칭되는 항목을 “대체문자열”로 변환
(”문자열”).split(정규표현식) “문자열”을 “정규표현식”에 매칭되는 항목으로 쪼개어 배열로 반환
(정규표현식).test(”문자열”) “문자열”이 “정규표현식”과 매칭되면 true,아니면 false반한
(정규표현식).exec(”문자열) match 메서드아 유사하지만 첫 번째 매칭 결과만 반환한다.

정규표현식 매칭 패턴(문자, 숫자, 기호 등)

패턴 의미

패턴  의미
a-zA-z 영어 알파벳(범위 지정)
ㄱ-ㅎ 가-힣 한글 문자(범위 지정)
0-9 숫자(범위지정)
. 모둔 문자열 단, 줄바꿈 불가능
\d 숫자
\D 숫자가 아닌 것
\w 밑줄 문자를 포함한 영숫자 문자에 대응 [a-zA-z_]와 동일
\W \w가 아닌 것
\s space공백
\S space공백이 아닌 것
\특수기호 ~!@#$%^&등등..

정규식 검색 기준 패턴

패턴 의미

턴  의미
| OR
[] 괄호안의 문자들 중 하나
[^문자] 괄호 안의 문자를 제외한 것
^문자열 특정 문자열로 시작(시작점)
문자열$ 특정 문자열 끝남(종착점)

정규식 개수 반복 패턴

특정 패턴이 몇 번 반복되는지도 필터링 가능

패턴 의미

패턴  의미
? 없거나 or 최대 한개만
* 없거나 or 있거나(여러개)
+ 최소 한개 or 여러개
*? 없거나 ,있거나 ad 없거나, 최대 한개: 없음
+? 최소 한개, 있거나 and 없거나, 최대 한개: 한개
{n} n개
{Min,} 최소 Min개 이상
{Min,Max} 최소 Min개 이상, 최대 Max개 이하

정규표현식 플래그

플래그 의미

패턴 의미
g Global:모든 문자 검색(안 쓰면 매칭되는 첫 문자만 검색된다ㅖ
i ignore Case: 대소문자 구분 안함
m Multi Line : 여러 행의 문자열에 대해 검색

정규표현식 예시

[전화번호]

const telepone =
  "dkdasdadasasdas안녕녕 <http://abcdefg.com> <http://naver.com> 010-1313-1313";

console.log(telepone.match(/\\d{2,3}-\\d{3,4}-\\d{4}/g)
//[ '010-1313-1313' ]

[한글 찾기]

const text = "안녕녕 013213 abdadw *%!@#!!#!@#나는 한글 나오면 안돼";
console.log(text.match(/[^a-zA-z0-9\\!@#$%^&*()-_=+`~]/g));
/*결과[
  '안', '녕', '녕', ' ',
  ' ',  ' ',  '나', '는',
  ' ',  '한', '글', ' ',
  '나', '오', '면', ' ',
  '안', '돼'
]*/
Comments