Regular Expression

sohyeon kim·2022년 4월 11일
0

React & Javascript

목록 보기
29/41

정규표현식 (Regular Expression)

정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex, rational expression) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. - 위키백과

정규 표현식이란 일정한 패턴을 가진 문자열집합을 표현하기 위해 사용하는 형식 언어(formal language)이다.
정규 표현식은 자바스크립트의 고유 문법이 아니며, 대부분의 프로그램 언어와 코드 에디터에 내장되어 있다. 자바스크립트는 정규 표현식 문법을 ES3부터 도입하였다.

regex 또는 regexp라고 한다.


정규표현식을 사용하는 이유

정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공한다.


Q. '패턴 매칭 기능'이란?

특정 패턴과 일치하는 문자열을 검색, 추출, 대체할 수 있는 기능을 말한다. 즉 반복문과 조건문 없이 패턴을 가진 문자열을 간단하게 검색, 추출, 대체할 수 있다는 것이다.
간단한 문자 검색부터 이메일, 패스워드 검사(유효성 검사) 등의 복잡한 문자 일치 기능을 정규 표현식으로 빠르게 추출할 수 있다.


정규 표현식의 단점

주석이나 공백을 허용하지 않고, 여러 기호를 혼합해 사용하기에 가독성이 좋지 않다.


문법

아래 링크를 참고하자

https://url.kr/uh2qo9

1) class
// 21-95 regular express 정규식
/apple/.test("apple")
// true

/apple/.test("applq")
// false

/^\w+@\w+.\w+$/.test("asdfasd@a;com")
// true
/^\w+@\w+\.\w+$/.test("asdfasd@a.com")
// true

/010-1234-5678/.test("010-1234-5678")
// true
/^\d{3}-\d{3,4}-\d{4}$/.test("123-1234-5678")
// true

 [a-zA-Z]
// \s

2) quiz 
// quiz21-07-regex
// "2018.01.01"
 /^\d{4}\.\d{2}\.\d{2}$/.test("2018.01.01")
// true

// "010-1234-5678"
 /^\d{3}-\d{3,4}-\d{4}$/.test("010-1234-5678")
// true

// "aaa@bbb.com"
 /^\w+@\w+\.\w+$/.test("aaa@bbb.com")
// true


자주쓰이는 정규 표현식

전화 번호 -, 123-123-2344 혹은 123-1234-1234:
/(\d{3}).*(\d{3}).*(\d{4})/

날짜 -, 3/28/2007 혹은 3/28/07:
/^\d{1,2}\/\d{1,2}\/\d{2,4}$/

/* 2021-01-01 또는 21-01-01 */
/^\d{2,4}-\d{1,2}-\d{1,2}$/

jpg, gif 또는 png 확장자를 가진 그림 파일명:
/([^\s]+(?=\.(jpg|gif|png))\.\2)/

이메일 형식만 가능 : [ test@nate.com ]
/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/   

비밀번호 정규식 - 8자 이상의 문자열, 하나 이상 숫자, 문자, 특수문자 포함하기
https://www.wrapuppro.com/programing/view/MIw5kPB3ao2YJVx

작성한 정규식을 확인할 수 있는 곳
https://www.regexpal.com/



출처 및 참고
http://www.codejs.co.kr/%EC%A0%95%EA%B7%9C%EC%8B%9D-regular-expression/

profile
slow but sure

0개의 댓글