저장을 습관화

자바스크립트 문자열 자르기 (substr, substring, slice) 본문

공부/JavaScript

자바스크립트 문자열 자르기 (substr, substring, slice)

ctrs 2023. 9. 9. 00:50

1. substr(start, length)

start: 추출을 시작할 문자열의 위치 (0부터 시작한다)

length: 추출할 문자의 길이

 

혹은 start 옵션만 입력함으로써 시작지점부터 끝까지 추출할 수 도 있다.

 

예시)

const str = "Hello, World!";
console.log(str.length); // 13
console.log(str.substr(7, 5)); // World
console.log(str.substr(7, 6)); // World!
console.log(str.substr(7)); // World!

 

 

2. substring(start, end)

start: 추출을 시작할 문자열의 위치

end: 추출을 종료할 문자열의 위치 (지정된 인덱스 바로 전까지 추출한다.)

 

추출 종료되는 문자가 end - 1으로 설정된다는 개념이다.

end 포인트에 한해서 0부터 세지 않고 1부터 센다고 생각하면 될까

 

만약 substring(7, 3)과 같이 start 위치 보다 end 위치가 작아도

에러를 발생시키지 않고 자바스크립트가 자동으로

둘 중 작은 수를 start, 큰 수를 end 포인트로 잡아 추출한다.

 

단, 음수가 들어간다면 이는 자동으로 0으로 치환된다.

 

substr과 동일하게 start 옵션만 입력하면 그 지점부터 나머지를 모두 추출한다.

 

예시)

const str = "Hello, World!";
console.log(str.length); // 13
console.log(str.substring(0, 12)); // Hello, World
console.log(str.substring(13, 0)); // Hello, World!

console.log(str.substring(7)); // World!

console.log(str.substring(0, 5)); // Hello
console.log(str.substring(7, 12)); // World

console.log(str.substring(-123, 5)); // Hello

 

 

3. slice(start, end)

start: 추출을 시작할 문자열의 위치 (0부터 시작)

end: 추출을 종료할 문자열의 위치 (지정된 인덱스 바로 전까지 추출)

 

start가 end보다 작을 경우 아무런 문자도 추출되지 않는다.

 

음수를 입력할 경우 문자열의 뒤에서부터 위치를 잡는다.

 

start 옵션만 입력함으로 시작 지점부터 끝까지 추출할 수 있으나

지정한 위치 전부터 시작한다

 

 

예시)

const str = "Hello, World!";
console.log(str.length); // 13

console.log(str.slice(7, 12)); // World
console.log(str.slice(12, 7)); // 

console.log(str.slice(-6, 13)); // World!
console.log(str.slice(0, -8)); // Hello

console.log(str.slice(5)); // , World!

 

 

[참조]

https://gent.tistory.com/414

 

[JavaScript] 문자열 자르기 (substr, substring, slice)

자바스크립트에서 문자열을 자르기 위해서는 substr(), substring(), slice() 함수를 사용하면 된다. 문자열을 뒤에서부터 자르기 위해서는 slice() 함수를 사용하면 효율적이며 타 언어의 Right 함수와 비

gent.tistory.com

https://ctrs.tistory.com/203

 

프로그래머스 LV.0 문자열 겹쳐쓰기

프로그래머스 LV.0 문자열 겹쳐쓰기 https://school.programmers.co.kr/learn/courses/30/lessons/181943 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을

ctrs.tistory.com