자바스크립트에서 정규식을 사용하는 방법은 String 객체의 메소드를 사용하는 방법과 정규식 객체 RegExp 를 사용하는 방법이 있습니다. 자주 사용하는 몇가지를 알아 보도록 하겠습니다.
정규식을 다음과 같은 문법을 가집니다.
/pattern/flags;
flags 로는 다음 세 가지가 있습니다.
- g : 일치하는 첫 번째 문자에서 멈추지 않고 전체에서 일치하는 모든 문자를 검색합니다.
- m : 시작 혹은 끝 문자 탐색(^ and $)이 행마다 적용되도록 합니다
- i : 대소문자를 구분하지 않고 매칭합니다.
var str = "abc\nABC abc";
// 전체의 시작을 검색합니다.
var patt = /^abc/gi;
var result = str.match(patt);
console.log(result);
결과)
[abc]
// 모든 행의 시작을 검색합니다.
var patt = /^abc/gmi;
var result = str.match(patt);
console.log(result);
결과)
["abc", "ABC"]
1. String 객체의 메소드
// str 에서 시작과 끝의 공백을 제거합니다.
str.replace(/^\s+|\s+$/g, "");
// str이 여러행으로 구성된 문자열 이라면,
// 각 행마다 앞뒤의 공백을 제거합니다.
str.replace(/^\s+|\s+$/gm, "");
2. RegExp 객체
RegExp 객체의 exec() 메소드는 찾은 결과를 배열로 리턴합니다. g 플래그를 사용해서 모두 찾을때는 루프를 사용해서 반복해야 합니다.
var str = "This is test.";
// 아래 두가지는 동일합니다.
var patt = new RegExp("is", "g");
//var patt = /is/g;
while((res = patt.exec(str)) !== null) {
var msg = '찾음 : ' + res[0] + '. ';
msg += '다음 매칭은 : ' + patt.lastIndex;
console.log(msg);
}
결과)
찾음 : is. 다음 매칭은 : 4
찾음 : is. 다음 매칭은 : 7
RegExp 객체의 test() 메소드는 찾는 문자열이 존재하는지 boolean 값을 반환합니다.
var str = "This is test.";
var patt = new RegExp("is");
var res = patt.test(str);
결과)
true
RegExp 객체와 // 로 둘러싸인 정규식 객체는 동일하게 사용되어 집니다.
반응형
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
jQuery 무한 스크롤(Infinite scroll) 플러그인 jScroll 사용법 (0) | 2018.04.19 |
---|---|
다음 지도로 약도 만들기 (2) | 2018.04.19 |
자바스크립트 쿠키 - jQuery Cookie Plugin (0) | 2018.04.17 |
자바스크립트의 trim() 함수 사용하기 (0) | 2018.04.17 |
jQuery 플러그인 4 - 년도 select 박스 만들기 (0) | 2018.04.12 |