자바스크립트에서 정규표현식 사용하기
검출하고자 하는 패턴을 만들어야 합니다.
패턴을 만들기 위해 정규표현식 객체를 만들어야 되는데 두 가지 방법이 있습니다.
정규표현식 리터럴을 사용한다.
var pattern = /a/; a를 찾기 위한 리터럴 생성
/(슬래쉬)와 슬래쉬 사이에 문자는 찾고자 하는 것을 입력하게 됩니다.
정규표현식 객체 생성자을 사용한다.
var pattern = new RegExp('a');
위와 같은 두가지 방법을 사용하여 패턴을 만들었다면 원하는 문자열에서 정규표현식을 활용하여 문자를 찾아내야 합니다.
찾아내는 방법에는 RegExp객체와 String객체를 이용합니다. 방법을 아래 예제로 남깁니다.
RegExp.exec()
console.log(pattern.exec(
'abcdef'
));
// ["a"]
RegExp.test()
test는 인자 안에 패턴에 해당되는 문자열이 있으면 true, 없으면 false를 리턴한다.
console.log(pattern.test('abcdef')); // true
console.log(pattern.test(
'bcdefg'
));
// false
String.match()
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 |
---|