본문 바로가기

Javascript/기초공부

[Javascript: 정규표현식(Regular expression)] 패턴 / 리터럴 / 객체 생성자 / RegExp 객체 사용 / 문자열 메소드 / 옵션 / 캡처 / 치환

패턴 만들기(객체 생성): 정규표현식 리터럴과 객체 생성자

/* 정규표현식 리터럴 */
var pattern1 = /a/; // '/'와 '/'사이의 a가 우리가 찾고자하는 것

/* 정규표현식 객체 생성자 */
var pattern2 = new RegExp('a'); // 위의 방법과 같은 결과

 

RegExp 객체 사용(메소드 실행): RegExp.exec(), RegExp.test()

정규표현식을 통해 객체를 생성했다면 이제 문자열에서 원하는 문자를 찾아내보자.

ex) 어떤 문자열에서 url 혹은 email 등에 해당되는 정보를 추출해내고 싶다.

/* RegExp.exec(): 찾고자하는 패턴이 있다면 그것을 배열로 리턴 */
var pattern = /a/;
console.log(pattern.exec('abcdef')); // ["a"]
console.log(pattern.exec('bcdef')); // null

var pattern2 = /a./; // .이란 어떤 한 문자
console.log(pattern2.exec("asdf")); // ["as"]
/* RegExp.test(): 패턴에 해당하는 문자열의 존재여부에 따라 true/false 리턴 */
var pattern = /a/;
console.log(pattern.test("abcdef")); // true

 

문자열 메소드: String.match(), String.replace()

/* String.match(): RegExp.exec()와 비슷하다. */
var pattern = /a/;
var str = 'abcdef';
str.match(pattern); // ["a"]
/* String.replace(): 문자열에서 패턴을 검색해서 변경한 후에 변경된 값 리턴 */
var pattern = /a/;
var str = 'abcdef';
str.replace(pattern, 'A'); // "Abcdef"

 

옵션: i 와 g

var xi = /a/; // i 옵션 사용X
"Abcde".match(xi); // null

var oi = /a/i; // i 옵션 사용O
"Abcde".match(oi); // ["A"]

var ig = /a/ig; // i와g 옵션 모두 사용
"Abcdea".match(ig); // ["A", "a"]
var xg = /a/; // g 옵션 사용X
"abcdea".match(xg); // ["a"]

var og = /a/g; // g 옵션 사용X
"abcdea".match(og); // ["a", "a"]