본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트에서 정규표현식 사용하기



검출하고자 하는 패턴을 만들어야 합니다.

패턴을 만들기 위해 정규표현식 객체를 만들어야 되는데 두 가지 방법이 있습니다.


정규표현식 리터럴을 사용한다.

var pattern = /a/;     a를 찾기 위한 리터럴 생성

/(슬래쉬)와 슬래쉬 사이에 문자는 찾고자 하는 것을 입력하게 됩니다.


정규표현식 객체 생성자을 사용한다.

var pattern = new RegExp('a');



위와 같은 두가지 방법을 사용하여 패턴을 만들었다면 원하는 문자열에서 정규표현식을 활용하여 문자를 찾아내야 합니다.

찾아내는 방법에는 RegExp객체와 String객체를 이용합니다. 방법을 아래 예제로 남깁니다.


  • RegExp.exec()

console.log(pattern.exec('abcdef')); // ["a"]
실행결과는 문자열 a를 값으로 하는 배열을 리턴한다.

console.log(pattern.exec('bcdefg')); // null
인자 'bcdef'에는 a가 없기 때문에 null을 리턴한다.

  • RegExp.test()

test는 인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴한다.

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 abcdef에서 a를 A로 치환합니다.




  • 캡처

정규표현식 관련하여 이전글의 내용중 ()를 사용하면 그룹화한다는 것을 알 수 있습니다.

그룹화한 것은 변수처럼 재 사용할 수 있고 $를 사용하는데 어떻게 사용할 수 있는지 알아 보겠습니다.


var pattern = /(\w+)\s(\w+)/; var str = "Hello ktko"; var result = str.replace(pattern, "$2, $1"); console.log(result);

//결과값은 ktko, Hello



\w는 문자를 의미하고 +는 한개 이상을 의미합니다.

\s는 공백을 의미합니다.


Hello ktko에서 

Hello는 (\w+) //문자가 1개이상이기 때문에 대입된다.

사이의 공백은 \s

ktko는 (\w+)에 대입됩니다. 


첫 번째 그룹(Hello)은 $1에 대입되고 두 번째 그룹(ktko)은 $2에 대입됩니다.








'정규표현식' 카테고리의 다른 글

정규표현식(Regular Expression) 이란?  (0) 2016.11.28