[JavaScript] str.(substring/substr/split) - 문자열 자르고 나누기 (ft. slice())
문자열을 잘라주는 메서드인 String.prototype.substring() 와 String.prototype.substr() 그리고 문자열을 특정 구분자를 기준으로 나누는 String.prototype.split() 메서드에 대해 알아보자.
추가적으로 String.prototype.slice() 를 같이 알아두면 좋다.
1. String.prototype.substring()
- substring() 메서드는 문자열의 시작 인덱스로 부터 종료 인덱스 "이전"까지의 문자열을 반환한다.
- substring() 메서드를 사용할 때 만약 시작 인덱스와 종료 인덱스가 동일할 경우 빈 문자열을 반환한다.
- substring() 메서드를 사용할 때 시작 인덱스가 종료 인덱스보다 큰 경우, 두개의 인자가 바뀐듯 작동한다. (즉, 큰 수가 indexEnd로 동작한다는 의미이다.)
- 매개변수가 0보다 작은 인자 값을 가지는 경우에는 0을, 문자열의 길이보다 길 경우 최대값으로 자동 설정된다.
1-1. 구문과 기본사용법
▷ 구문
str.substring(indexStart[, indexEnd])
indexStart : 반환문자열의 시작 인덱스이다.
indexEnd : 생략 가능하며(생략 시 indexStart 부터 끝까지를 반환한다.), 반환문자열의 마지막 인덱스이다. (해당 인덱스 값은 포함되지 않는다.)
▷ 예제 1 ) String.prototype.substring() 메서드 기본 사용법
let str = 'Mine-it-record';
// 'Mine'
console.log(str.substring(0, 4));
console.log(str.substring(4, 0));
// 'it-record'
console.log(str.substring(5));
console.log(str.substring(5, 15));
console.log(str.substring(15, 5));
// 'Mine-it-record'
console.log(str.substring(0, 20));
console.log(str.substring(0, 25));
console.log(str.substring(-1));
2. String.prototype.substr()
- substr() 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환한다.
- substr() 메서드는 MDN홈페이지에서 설명하는것처럼(본문 하단 링크 참조) 특이하게도 언제 사라질지 모르는 메서드이기 때문에 너무 자주 애용하지는 말자
1-1. 구문과 기본사용법
▷ 구문
str.substr(start[, length])
start : 추출하고자 하는 문자열의 시작위치(인덱스)이며, 만약 음수가 주어진다면 자동적으로 문자열 총길이에서 뺀만큼의 숫자가 설정된다. (-3을 설정할 경우 "문자열 총 길이 - 3" 을 의미한다.)
length : start 부터 추출할 문자들의 개수를 의미하며, 생략할 경우에는 문자열의 끝까지 그리고 0 혹은 음수일 경우 빈 문자열을 반환한다.
▷ 예제 1 ) String.prototype.substr() 메서드 기본 사용법
let str = 'Mine-it-record';
console.log(str.substr(0, 4)); // 'Mine'
console.log(str.substr(4, 0)); // ''
console.log(str.substr(5)); // 'it-record'
console.log(str.substr(5, 15)); // 'it-record'
console.log(str.substr(5, -1)); // ''
console.log(str.substr(-1)); // 'd'
console.log(str.substr(-9)); // 'it-record'
console.log(str.substr(-9, 2)); // 'it'
3. String.prototype.split()
- split() 메서드는 문자열을 자르는 메서드와는 다르게 문자열을 지정한 구분자를 이용하여 여러 개의 문자열로 나눠주는 메서드이다.
- 매개변수로 정규표현식을 받아 사용할 수 있다.
1-1. 구문과 기본사용법
▷ 구문
str.split([separator[, limit]])
separator :
- 원본 문자열을 끊어야 할 부분을 나타내는 문자열을 의미한다. (문자열을 나누는 기준을 의미한다.)
- 실제 문자열이나 정규표현식을 받아서 사용한다.
- 두 글자 이상일 경우 그 부분 문자열 전체가 일치해야 끊어진다.
- 생략하거나 일치하는게 존재하지 않는다면 원본 문자열을 배열에 담아 반환한다.
- 빈문자열('')을 입력할 경우 각각의 문자가 배열의 원소 하나씩으로 담겨 반환된다.
limt :
- 끊어진 문자열의 최대 개수를 의미한다. (배열의 제한을 의미한다.)
▷ 예제 1 ) String.prototype.split() 메서드 기본 사용법
let str = 'Mine-it-record';
console.log(str.split()); // ['Mine-it-record']
//['M', 'i', 'n', 'e', '-', 'i', 't', '-', 'r', 'e', 'c', 'o', 'r', 'd']
console.log(str.split(''));
console.log(str.split('', 4)); // ['M', 'i', 'n', 'e']
console.log(str.split('-')); //['Mine', 'it', 'record']
console.log('Mine it record'.split(' ')) //['Mine', 'it', 'record']
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/split