[Javascript] substring() method

[Javascript] substring() method

substring() method

형태: str.substring(indexStart, indexEnd)

String 오브젝트의 시작 인덱스부터 종료 인덱스까지의 부분 문자열을 반환

indexStart: 반환할 문자열의 시작 인덱스 (반환 문자열에 포함)

indexEnd (optional) : 반환할 문자열의 마지막 인덱스의 + 1

: 반환할 문자열의 마지막 인덱스의 + 1 indexEnd에 해당하는 값은 반환되는 문자열에 포함되지 않음

indexEnd 가 생략 된 경우, indexStart부터 문자열의 끝까지 모든 문자 를 반환

된 경우, indexStart부터 를 반환 indexStart == indexEnd 인 경우, 빈 문자열 반환 ' ';

인 경우, 반환 ' '; indexStart > indexEnd 인 경우, 두 인덱스의 자리를 바꾼 것처럼 메소드 실행

인 경우, 두 인덱스의 자리를 바꾼 것처럼 메소드 실행 indexStart || indexEnd < 0 인 경우, 인덱스를 0 으로 처리

인 경우, 인덱스를 indexStart || indexEnd > str.length 인 경우, 인덱스를 str.length 로 처리

indexStart || indexEnd 가 숫자가 아닌 경우 (Not-a-Number), 인덱스를 0으로 처리

let anyString = 'Mozilla'; // Displays 'M' console.log(anyString.substring(0, 1)); console.log(anyString.substring(1, 0)); // indexStart > indexEnd // Displays 'Mozill' console.log(anyString.substring(0, 6)); // Displays 'lla' console.log(anyString.substring(4)); console.log(anyString.substring(4, 7)); console.log(anyString.substring(7, 4)); // indexStart > indexEnd // Displays 'Mozilla' console.log(anyString.substring(0, 7)); console.log(anyString.substring(0, 10)); // indexEnd > anystring.length

indexStart || indexEnd > str.length 인 경우, 인덱스를 str.length 로 처리

위의 index가 문자열의 길이보다 큰 경우 문자열의 길이로 처리하는 개념이 헷갈려서 다시 정리해 보자면,

1) indexStart 와 indexEnd 가 모두 str.length 보다 큰 경우와,

2) indexStart 만 str.length 보다 큰 경우로 나눠서 생각해 볼 수 있다.

let anyString = 'Mozilla'; // anyString.length = 7 // case 1. indexStart 와 indexEnd 가 모두 7보다 큰 경우 // 이 경우 두 인덱스 모두 anyString.length 인 7로 처리되기 때문에 // 다시 indexStart == indexEnd 의 케이스가 되어 빈 문자열이 반환된다. console.log(anyString.substring(8, 9)); console.log(anyString.substring(7, 7)); // Display ''; // case 2-1. indexStart 만 7보다 큰 경우 // 이 경우 indexStart만 anyString.length 인 7로 처리되고, // 다시 7인 indexStart 가 indexEnd 보다 큰 경우 두 자리를 바꿔서 처리되며, // case 2-2. 만약 indexEnd 도 7인 경우에는 case 1과 마찬가지로 빈 문자열이 반환된다. console.log(anyString.substring(8, 5)); console.log(anyString.substring(7, 5)); console.log(anyString.substring(5, 7)); // Display 'la'; console.log(anyString.substring(8, 7)); console.log(anyString.substring(7, 7)); // Display '';

from http://zubetcha.tistory.com/55 by ccl(A) rewrite - 2021-11-13 13:27:53