JavaScript에서 문자열의 일부를 추출하려면 string.substring() 메서드를 사용합니다. 이 메서드를 활용하면 특정 문자를 기준으로 그 앞이나 뒤에 위치한 문자열의 원하는 부분을 손쉽게 가져올 수 있습니다.
str.substring() 메서드란?
substring() 메서드는 시작 인덱스(포함)부터 종료 인덱스(제외)까지의 문자열을 잘라내어 반환합니다. 만약 인덱스를 하나만 전달하면 해당 인덱스부터 문자열 끝까지 전체를 잘라냅니다.
구문 1: 특정 문자 뒤의 문자열 추출
아래 코드를 사용하면 특정 문자 뒤에 있는 문자열 부분을 얻을 수 있습니다.
string.substring(string.indexOf(character) + 1);
동작 원리를 살펴보면, 먼저 indexOf()로 해당 문자의 위치를 찾은 후 1을 더해 그 다음 인덱스부터 문자열 끝까지 잘라냅니다.
구문 2: 특정 문자 앞의 문자열 추출
아래 코드를 사용하면 특정 문자 앞에 있는 문자열 부분을 얻을 수 있습니다.
string.substring(0, string.indexOf(character));
이 경우 시작 인덱스는 0(문자열 처음), 종료 인덱스는 해당 문자의 위치이므로, 그 문자 바로 앞까지만 잘려 나옵니다.
예제
<html>
<body>
<script>
function subStr(string, character, position) {
if(position=='b')
return string.substring(string.indexOf(character) + 1);
else if(position=='a')
return string.substring(0, string.indexOf(character));
else
return string;
}
document.write(subStr('Tutorix & Tutorialspoint','&','a'));
document.write("</br>");
document.write(subStr('Tutorix:a best e-learning platform', ':','b'));
</script>
</body>
</html>코드 설명
위 예제의 subStr() 함수는 문자열, 기준 문자, 위치 옵션 세 가지 매개변수를 받습니다. position 값이 'b'(before가 아닌 뒤쪽)이면 기준 문자 뒤의 내용을, 'a'(앞쪽)이면 기준 문자 앞의 내용을 반환합니다. 두 조건에 모두 해당하지 않으면 원본 문자열을 그대로 돌려줍니다.
실행 결과
Tutorix a best e-learning platform
첫 번째 호출에서는 '&' 문자를 기준으로 앞쪽('a')인 'Tutorix'가 출력되고, 두 번째 호출에서는 ':' 문자를 기준으로 뒤쪽('b')인 'a best e-learning platform'이 출력됩니다.