- 정규 표현식?
- 문자열에서 특정한 문자를 찾아내는 도구
- 정규표현식은 하나의 언어라고 할 수 있다
-
컴파일
-
컴파일은 문자열에서 어떤 것을 검출하고자 하는 패턴을 만드는 것이다 이를 위해서는 먼저 정규표현식 객체를 만들어야 한다
-
정규 표현식 객체 만드는 방법
-
정규 표현식 리터럴
// 따옴표 안의 문자가 문자열이라고 정의하는 것 처럼 // 슬래쉬 안의 문자를 정규표현식 리터럴이라 정의한다 var pattern = /a/ //a를 찾는다는 의미
-
정규 표현식 객체 생성자
var pattern = new RegExp('a'); //a를 찾는다는 의미
-
-
-
정규 표현식 메소드 실행
-
RegExp.exec()
console.log(pattern(exec('abcdef'))); // ["a"] console.log(pattern(exec('bcdefg'))); // null
-
RegExp.test()
console.log(pattern.test('abcdef')); // true console.log(pattern.test('bcdefg')); // false
-
-
문자열 객체의 몇몇 메소드로 정규 표현식을 사용할 수 있다
- String.match() ⇒ RegExp.exec() 와 비슷
console.log('abcdef'.match(pattern)); // ["a"] console.log('bcdefg'.match(pattern)); // null
- String.replace() ⇒ 패턴을 검색하여 이를 변경한 후 리턴
console.log('abcdef'.replace(pattern,'A')); // Abcdef
-
정규표현식 패턴을 만들 때 옵션을 설정할 수 있고 이에 따라 검출되는 데이터도 달라진다
- i
// i를 붙이면 대소문자를 구분하지 않는다 var xi = /a/; console.log("Abcde".match(xi)); // null var oi = /a/i; console.log("Abcde".match(oi)); // ["A"]
- g
// g를 붙이면 검색된 모든 결과를 리턴한다 var xg = /a/; console.log("abcdea".match(xg)); // ["a"] var og = /a/g; console.log("abcdea".match(og)); // ["a","a"]
-
형식
/패턴/플래그
- 슬래쉬 사이에는 패턴
- 슬래쉬 다음에는 옵션을 설정하는 플래그
-
매칭 패턴
- a-zA-Z : 영어
- ㄱ-ㅎ가-힣 : 한글
- 0-9 : 숫자
- . : 모든 문자열 (줄바꿈을 제외한)
- \d : 숫자
- \D : 숫자가 아닌 것
- \w : 영어 알파벳, 숫자, _
- \W : \w가 아닌 것
- \s : 공백 (space)
- \S : 공백이 아닌 것
-
검색 패턴
- 대괄호 [ ] : 괄호의 문자들 중 하나
- [^문자] : 괄호안의 문자를 제외한 것
- ^문자열 : 특정 문자열로 시작
- 문자열$ : 특정 문자열로 끝남
- () : 그룹으로 묶음
- \b : 단어의 처음/끝
- \B : 단어의 처음/끝이 아님
-
수량 패턴
- ? : 최대 한번
- * : 없거나 있거나(여러개 있어도 됨)
- + : 최소 한개
- {n} : n개
- {Min,} 최소 Min개 이상
- {Min,Max} Min개 이상 Max개 이하
-
정규 표현식 플래그
- g : 모든 문자 검색(Global)
- i : 대소문자 구문 안함(Ignore Case)
- m : 여러 행의 문자열에 대해 검색(Multi line)
[자바스크립트] 정규표현식(Regular Expression) 기초/기본 쉽고 상세한 사용 방법 정리(샘플 예제 코드)