문자열 추출(substring,substr,slice)비교

Msik·2022년 6월 6일
0

Javascript에서 substr(), substring(), slice() 함수는 모두 문자열을 잘라주는 역할을 합니다.

지금까지 문제를 풀어보면서 계속 헷갈리다보니 이렇게 정리하게 되었습니다.


  • substr()
    파라미터로 입력받은 start index부터 length 길이만큼
    첫번째 글자의 index는 0에서 시작합니다.
string.substr(start, length)


  • substring()
    substr() 함수와 다른 점은 매개변수로 잘라내고 싶은 문자열의 start index와 last index를 전달한다는 것입니다.
    substr() 함수와 마찬가지로 index는 0부터 시작합니다.
string.substring(startindex, endindex)

lastindex 자신은 포함을 하지 않는다!


  • slice()
    substring() 함수와 사용법이 같습니다.
    start index와 end index를 전달합니다.
    두번째 인자를 넘기지 않으면, 시작 인덱스가 가리키는 값부터 배열의 마지막 값까지 모두 복사해줍니다.
    음수전달이 가능하고 -1이면 배열의 맨 마지막 값을 추출

  • slice, substring의 차이

  1. slice() 는 음수 파라메터가 전달되어도 그대로 작동하지만 substring() 음수가 전달되면 인덱스0으로 인식한다. slice()의 경우 만약 음수 파라미터값이 string 길이보다 크다면 이때는 인덱스0으로 처리됩니다.

  2. start > end 인 경우
    1) substring() : 
    start 값과 end 값을 바꾸어서 처리합니다.
    위 예제에서 substring(1, 0)은 실제로는 substring(0, 1)로 처리되어 string의 첫번째 글자 하나를 리턴합니다.
    2) slice() :
    그냥 비어있는 string, slice(-2,-2)즉 ""을 리턴합니다.slice(-3,-2)이렇게하면 한글자는 나옴
    slice(-1,1)의 경우 시작 index가 끝이라고 처음이랑 이어지지않음 ''리턴함

순서는 무조건 왼쪽에서 오른쪽 오른쪽에서 왼쪽이 되진않음!


* 추가 splice()함수

위의 함수들과 배열에서 사용되는 함수이며 이 함수는 startindex,length를 받지만 추가적으로 3번째 파라메타로 삭제 후 더해질 요소를 원본상태에 추가할 수 있는 함수이다.

  • splice() 함수에 첫번째 인자만 넘기면 해당 인덱스가 가리키는 값을 포함해서 배열의 마지막 값까지 삭제가 됩니다. splice() 함수를 사용할 때 가장 주의할 부분은 삭제된 값을 담고 있는 새로운 배열이 반환될 뿐만 아니라 원본 배열에도 변경이 가해진다는 점입니다.
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; 
var arr1 = arr.splice(10, 2, 'a', 'b', 'c'); 
console.log(arr);   // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "a", "b", "c"]
console.log(arr1);  // [11, 12]

-함수 사용정리-
배열 : slice,splice 사용가능
문자열 : substr,substring,slice 사용가능

profile
득근득근 개발!

0개의 댓글