
자바스크립트와 같은 언어이며, 여러 언어에서 사용이 가능하다.
이 포스트에서는 정규표현식을 자바스크립트에서 사용하는 방법에 대해 알아보고자 한다.
💡 정규표현식
문자열에서 특정한 문자를 찾아내는 도구
이 도구를 이용하면 수십줄이 필요한 작업을 한줄로 끝낼 수 있다.
💡 컴파일
어떠한 작업을 하기 위해 어떠한 문자가 있는지, 없는지 찾는 단계
➡️ 패턴을 찾는 단계 (대상)
💡 실행
대상(패턴)에 대해 구체적으로 어떠한 작업을 하는 것
찾고자 하는 정보를 패턴에 저장하여 패턴을 만드는데, 이 패턴을 만드는 방법에는 두가지 방법이 있다.
var pattern = /a/ // a라는 문자열 찾기
// 슬래시 안에 있는 문자열을 찾아내는 것
var pattern = new RegExp('a') // 정규 표현식 객체를 만든다.
// a라는 문자열 찾기
정규 표현식을 컴파일해서 객체를 만들었다면 이제 문자열에서 원하는 문자를 찾아내야 한다.
➡️ 작업의 대상 찾기!
정규 표현식이 찾고자 하는 대상을 첫번째 인자로 전달하여, 대상에서 패턴이 찾는 정보를 찾아서 배열로 리턴하는 함수이다.
있으면 찾은 패턴을 찾은 정보를 리턴하고 없으면 null을 리턴한다.
var pattern = /a/;
pattern.exec('abcdef'); // ["a"]
var pattern = /a./;
pattern.exec('abcde'); // ["ab"]
// 점이 오는 위치에 어떤 문자가 오든 상관없이 하나의 문자가 와야 함
var pattern = /a/;
pattern.exec('bcdef'); // null
대상에게 정규표현식이 찾고자 하는 패턴이 있는 지 확인하여 true / false로 반환한다.
var pattern = /a/;
pattern.test('abcde'); // true
var pattern = /a/;
pattern.test('bcde'); // false
RegExp.exec()와 비슷하다.
var pattern = /a/;
var str = 'abcdef';
str.match(pattern); // ["a"]
var str = 'bcdef';
str.match(pattern); // null
문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴한다.
var pattern = /a/;
var str = 'abcdef';
str.replace(pattern, 'A'); // "Abcdef"
정규표현식은 패턴을 만들때 옵션을 설정할 수 있고, 이 옵션에 따라 검출되는 데이터가 달라진다.
ii를 붙이면 대소문자를 구분하지 않는다.
var xi = /a/; // i 옵션 사용하지 않는 변수
"Abcde".match(xi) // 대상.match(패턴) --> null
var oi = /a/i; // i 옵션 사용 --> /a/i
"Abcde".match(oi) // ["A"] 대소문자 구분 없이 검출
gg를 붙이면 검색된 모든 결과를 리턴한다.
var xg = /a/; // g 옵션 사용 안함
"abceda".match(xg); // ["a"] // 만족하는 것 하나만 출력
var og = /a/g; // g 옵션 사용함
"abcdea".match(og); // ["a", "a"] // 만족하는 모든 결과 출력
괄호 안의 패턴은 마치 변수처럼 재사용할 수 있다.
그룹을 묶어 값으로 처리해서 원하는 대로 처리할 수 있다.
var str = "coding everybody"
var result = str.replace(pattern, "$2, $1")
console.log(result) // everybody, coding
(\w+), \s, (\w+) --> $2, , , $1
✔️ 복잡한 정규 표현식을 보기 쉽게 해주는 사이트 - 정규 표현식 시각화 사이트

( ) - 그룹\w - A~Z , a~z , 0~9+ - 앞의 문자가 하나 이상인 경우 유효함 ( # - x / a - o / aa - o)\s - 공백그렇다면 위의 정규 표현식을 만족하는 예시는 무엇일까?
A A, AA AA, 00 00 등이 있다.
🎯 정규 표현식을 만족하는지 테스트 해주는 사이트 - 정규 표현식 빌더
✔️ 정규표현식 만족안하는 경우 - 0 match

✔️ 정규표현식 만족하는 경우 - 1 match
