JS - 정규 표현식


문자열에서 특정한 문자를 찾아내는 툴.

컴파일 : 패턴 생성 방법

  1. 정규표현식 리터럴
const pattern = /찾고자 하는 문자/;

const pattern1 = /"a"/;
  1. 정규표현식 객체 생성자
const pattern1 = new RegEXP("a");

정규표현식 메소드 실행 방법

  • RegExp.exec() : 추출
변수명.exec('문자열');

pattern1.exec('abcdef'); 
// ["a"]

pattern1.exec('bcdefg'));
// null (a가 없을 때)

const pattern2 = new RegEXP("a.");
// .은 1개의 문자. 즉 a와 a뒤의 문자 1개

pattern2.exec('abcdef'));
// ["ab"]
  • RegExp.test() : 존재 유무 테스트 test는 인자 안에 pattern1에 해당되는 문자열이 있으면 true, 없으면 false를 return.
pattern1.test('abcdef'); 
// true

pattern1.test('bcdefg'); 
// false

문자열 메소드 실행 방법

  • String.match RegExp.exec()와 비슷.
문자열.match(정규 표현식 변수);

'abcdef'.match(pattern)); // ["a"]

'bcdefg'.match(pattern); // null
  • String.replace() 문자열에서 패턴을 검색해서 이를 변경한 후에 변경된 값을 리턴한다.
문자열.replace(정규 표현식 변수. 변경  문자열);

'abcdef'.replace(pattern1, 'A');  // Abcdef

옵션

정규표현식 패턴을 만들 때 옵션을 설정할 수 있다. 옵션에 따라서 검출되는 데이터가 달라진다.

  • i : i를 붙이면 대소문자를 구분하지 않는다.
let xi = /a/;
console.log("Abcde".match(xi)); // null
let oi = /a/i;
console.log("Abcde".match(oi)); // ["A"];

g : g를 붙이면 검색된 모든 결과를 리턴한다.

const xg = /a/;
console.log("abcdea".match(xg));
//["a"]
const og = /a/g;
console.log("abcdea".match(og));
//["a", "a,"]

ig : i와 g를 붙이면 대소문자 구분 없이 검색된 모든 결과를 리턴

const og = /a/ig;
console.log("abcdeA".match(og));
//["a", "A,"]

캡쳐

괄호안의 패턴은 마치 변수처럼 재사용할 수 있다. 이 때 기호 $를 사용.

const pattern = /(\문자+)\s(\문자+)/;
// \문자 = 1개 이상의 문자, \s = 띄어쓰기
const str = "Hello World";
// 위 pattern과 형식이 같음.>>
var result = str.replace(pattern, "$2, $1");
// $2 = 패턴의 2번째 괄호, $1 = 패턴의 1번째 괄호
console.log(result);
// World, Hello





© 2020.11. by creamer

Powered by CREAMer