Javascript Cookbook

문자열에서 부분 문자열 추출하기

문자

여러 개의 문장으로 이루어진 문자열이 있고, 그 중 하나의 문장에 어떤 목록이 포함되어 있다. 목록은 콜론(:)으로 시작하고 마침표(.)로 끝난다. 문자열에서 이 목록을 추출하고 싶다.

해결

indexOf 메서드를 사용하여 콜론의 위치를 알아낸 후 다시 indexOf 메서드를 사용하여 콜론 다음에 오는 마침표의 위치를 찾는다. 두개의 위치를 substring 메서드와 함께 사용하면 문자열을 추출할 수 있다.

var sentence = "This is one sentence. This is a sentence with a list of items:cherries, oranges, apples, bananas.";
var start = sentence.indexOf(":");
var end = sentence.indexOf(".", start+1);

var list = sentence.substring(start+1, end);   
document.write(list);   // cherries, oranges, apples, bananas

설명

substring 메서드의 첫번째 인수와 두번째 인수는 각각 추출할 문자열의 시작과 끝 위치를 나타내는 인덱스값이다.

결과적으로 list 변수에 저장되는 목록은 다음과 같다.

cherries, oranges, apples, bananas

String.split 같은 메서드를 사용하면 목록의 값을 각각 분리할 수도 있다.

var fruits = list.split(",");   // 값의 배열