정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex, rational expression) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. - 위키백과
정규 표현식
이란 일정한 패턴
을 가진 문자열
의 집합
을 표현하기 위해 사용하는 형식 언어(formal language)
이다.
정규 표현식은 자바스크립트의 고유 문법이 아니며, 대부분의 프로그램 언어와 코드 에디터에 내장되어 있다. 자바스크립트는 정규 표현식 문법을 ES3부터 도입하였다.
regex
또는 regexp
라고 한다.
정규 표현식은 문자열을 대상으로 패턴 매칭 기능
을 제공한다.
특정 패턴과 일치하는 문자열을 검색
, 추출
, 대체
할 수 있는 기능을 말한다. 즉 반복문과 조건문 없이 패턴을 가진 문자열을 간단하게 검색
, 추출
, 대체
할 수 있다는 것이다.
간단한 문자 검색
부터 이메일
, 패스워드 검사(유효성 검사)
등의 복잡한 문자 일치 기능을 정규 표현식으로 빠르게 추출할 수 있다.
주석이나 공백을 허용하지 않고, 여러 기호를 혼합해 사용하기에 가독성
이 좋지 않다.
아래 링크를 참고하자
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/