9 Apr 2019

ECMAScript6) 패턴 매칭을 사용하는 문자열 메서드

문자열 메서드

일반적인 정규표현식에 대한 학습은 여기→ 에서 할 수 있다.

자바스크립트에서는 정규표현식을 RegExp 객체로 표현한다. RegExp 생성자를 사용하거나 정규표현식 리터럴 을 사용해서 생성할 수 있다.

var reg = new RegExp("abc");
var reg = /abc/;

정규표현식으로 문자열을 처리할 수 있는데, 그 중에서 String 객체의 메서드와 정규 표현식을 함께 활용하는 방법을 알아본다.

search 메서드는 인수로 받은 정규 표현식 객체와 일치한 최초 문자열의 인덱스를 반환한다. 찾지 못한 경우 -1을 반환한다.

var s = "1 little, 2little indian";
console.log(s.search(/little/));  // 2
console.log(s.search(/\d/));  // 0

문자열 치환하기 : replace

replace 메서드는 첫번째 인수로 받은 정규표현식과 일치하는 문자열을 검색하고, 두번째 인수로 받은 문자열로 치환한 새로운 문자열을 반환한다. 중요한 것은, 새로운 문자열을 반환하지, 원본을 고치는것이 아니라는 것이다.

g 플래그를 설정하면 일치한 문자열을 모두 수정하고, g 플래그를 설정하지 않으면 가장 처음 일치한 문자열만 수정한다.

var s = "1 little, 2little indian";
console.log(s.replace(/little/, "big"));  // 1 big, 2little indian
console.log(s.search(/little/g), "bin");  // 1 big, 2big indian

문자열 추출하기 : match

match 메서드는 첫번째 인수로 받은 정규표현식과 일치하는 문자열을 순서대로 저장해서 배열로 반환한다. 역시나 원본을 수정하지 않는다.

"1 little, 2little indian".match(/\d+/g);  // -> ["1", "2"]

g 플래그를 설정하지 않으면 가장 처음 일치한 문자열만 반환한다.

문자열 나누기 : split

split 메서드는 첫번째 인수로 문자열을 분할한 다음에 배열에 담아서 반환한다. 첫번째 인수로는 문자열 또는 정규표현식을 넘길 수 있다. 첫번째 인수를 생략하면 원본 문자열 전체를 배열에 담아 반환한다. 역시나 원본을 수정하지 않는다.

console.log("172.20.51.65".split(".")); // ["172", "20", "51", "65"]

더욱 자세한 내용은 구글을..사용? 차후에 더욱 업로드 하겠다.


저자 : 강화수(hwasurr)


Tags: