Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Kimyeongkyung

.slice / .substr / .substring 비교 +split() 본문

important

.slice / .substr / .substring 비교 +split()

yeongk0825 2022. 3. 14. 22:58

substring(a,b)
a번째 값부터 b 전까지

substr(a,b)
a번째 값부터 b만큼의 배열

두 메서드 모두 a값만 존재할 경우 a부터 끝까지의 배열

a값이 음수일 경우 뒤에서부터 셈

ex) .str(-3) 일때는 배열 뒤에서 3번째 원소부터 끝까지 나열

substr(-4) => 뒷 4자리만 길이를 표시함

slice(start,end)
start:추출구간 시작점
end:추출구간 종료점
start만 있을경우 start 지점부터 끝까지.
음수일경우 뒤에서부터 셈


function solution(phone_number) {
    var answer = "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
    return answer;
  //배열 전체에서 마지막 4자리만 빼고 나머지는 *로 반복해라
  //-4 => 뒤에서부터 4번째 자리 부터 반환해라
}
console.log(solution("01012345678"));


function solution(phone_number) {
    var answer = phone_number.slice(-4);
    return answer;
}

substring(a,b)
a번째 값부터 b 전까지

substr(a,b)
a번째 값부터 b만큼의 배열

두 메서드 모두 a값만 존재할 경우 a부터 끝까지의 배열

a값이 음수일 경우 뒤에서부터 셈

ex) .str(-3) 일때는 배열 뒤에서 3번째 원소부터 끝까지 나열

substr(-4) => 뒷 4자리만 길이를 표시함

slice(start,end)
start:추출구간 시작점
end:추출구간 종료점
start만 있을경우 start 지점부터 끝까지.
음수일경우 뒤에서부터 셈

slice 메서드

function solution(phone_number) {
    var answer = "*".repeat(phone_number.length - 4) + phone_number.slice(-4);
    return answer;
  //배열 전체에서 마지막 4자리만 빼고 나머지는 *로 반복해라
  //-4 => 뒤에서부터 4번째 자리 부터 반환해라
}
console.log(solution("01012345678"));

substr 메서드

function solution(phone_number) {
    var answer = "*".repeat(phone_number.length - 4) + phone_number.substr(-4);
    return answer;
  //배열 전체에서 마지막 4자리만 빼고 나머지는 *로 반복해라
  //-4 => 뒤에서부터 4번째 자리 부터 반환해라
}
console.log(solution("01012345678"));

substring 메서드

substr() 메서드
string.substr(start, length)

파라미터로 입력받은 index부터 length 길이만큼 string을 잘라내어 반환하는 함수입니다..

index는 0부터 시작

let str="안녕하세요"

let comment = str.substr(0,3);
//index 0번째부터 길이 3만큼

출력값

"안녕하"

substring() 메서드
string.substring(start, end)

substr() 함수와 다른 점은 매개변수로 잘라내고 싶은 문자열의 start index와 last index를 전달함

substr() 함수와 마찬가지로 index는 0부터 시작

let str="안녕하세요"

let comment = str.substring(1,3);
//index 1번부터 길이 3만큼

출력값

"녕하세"


slice()

slice() 함수는 substring() 함수와 사용법이 같음.

substring() 함수와 마찬가지로 파라미터로 자를 문자열의 start index와 end index를 전달

substr과 slice의 차이는 substr은 길이만큼 자른다는것, slice는 star와 end index를 전달한다는것의 차이일 뿐 결과값과 사용법은 같음

substring과 slice 차이점이 있다면

(1)start>end일 경우

substring( )
start 값과 end 값을 바꿔서 처리

let str="안녕하세요"
let slice = str.slice(1,0);

출력값 

"안"

-
// substring(1, 0)은 실제로는 substring(0, 1)로 처리되어 string의 첫번째 글자 하나를 리턴

let str="안녕하세요"
let slice = str.slice(1,0);

출력값 

그냥 비어있는 문자열 "" 출력

(2) start 또는 end 값이 음수인 경우(음수 절대값이 전체길이를 안넘을경우 해당)

slice() 

string의 가장 뒤에서 음수의 절대값만큼 내려온 index로 취급합니다.

let str = "안녕하세요"

let slice_1 = str.slice(-2, 5);

출력값 
"세요"

뒤에서 2번째자리를 start값으로 취급, 즉 .slice(4, 5)와 같은 결과
4번째 자리부터 5번째 자리 까지

let slice_2 = str.slice(0, -2);

출력값
"안녕하"

=>음수 절대값이 전체길이를 넘을경우 .slice도 substring과 마찬가지로 0으로 취급)


substring() : 음수는 무조건 0으로 취급!(전체길이보다 값이 크든 작든 상관없이)

start값이 음수인 경우, start값은 0으로 취급

위 예제에서 substring(-2, 6)의 start값은 0으로 취급되어,

내부적으로는 substring(0, 6)으로 계산되게 됩니다.

end값이 음수인 경우에도, start값과 마찬가지로 end값은 0으로 취급됩니다.

 

.split()

var str = "aa/bb/cc/dd/ee";
 
var arr = str.split(""); // ""를 구분자로 지정했을때 문자열을 하나씩 나누어 배열로 반환한다.
console.log(arr); // ["a", "a", "/", "b", "b", "/", "c", "c", "/", "d", "d", "/", "e", "e"]
 
var arr = str.split("/"); // 구분자를 통해 나뉜 결과는 배열로 저장된다.
console.log(arr); // ["aa", "bb", "cc", "dd", "ee"]
 
 
arr = str.split("/", 2); // 분할 개수를 정하면, 그 개수를 넘어가는 문자열은 반환되지 않는다.
console.log(arr); // ["aa", "bb"]



출처: https://mylife365.tistory.com/103 [변화에 적응하기]