JavaScript에서 하위 문자열 추출은 주로 Slice, Substring, Substr 세 가지 방법 중 하나를 통해 이루어집니다.
// substring
// 구문: string.substring(indexA [, indexB])
"좋은 소식입니다, 여러분!".substring(5,9)
// 'news'
// substr
// 구문: string.substr(start [, length])
"좋은 소식입니다, 여러분!".substr(5,4)
// 'news'
그러나 몇 가지 중요한 차이점이 있습니다.
1. substr() 메서드는 지정된 위치에서 지정된 수의 문자를 추출합니다.
param: start는 문자 추출을 시작할 위치 인덱스이고, length는 추출된 문자의 개수와 길이입니다.
반환: 새 문자열. 시작부터 시작하는 길이의 문자입니다.
브라우저마다 성능이 일관되지 않습니다. 최신 브라우저에서는 문자열 끝부터 추출할 문자 수를 나타내기 위해 시작 인덱스 매개변수를 음수로 허용합니다. 그러나 IE8 이하 브라우저에서는 최소 시작 인덱스 매개변수가 0부터 계산됩니다. [ substr은 웹 브라우저용 추가 ECMAScript 기능입니다. 시작 인덱스가 음수 값인 경우에는 사용하지 않는 것이 좋습니다.]
console.log("(1): " str.substr(1)); // (1): bcdefghij
console.log("(1,2): " str.substr(1,2) )); // (1,2): bc
console.log("(-3): " str.substr(-3)); // (-3): hij
console.log("(-3,2): " str.substr (-3,2)); // (-3,2): 안녕
console.log("(20, 2): " str.substr(20,2)) // (20, 2):
console.log("(-20, 2): " str .substr(-20,2)); // (-20, 2): ab
// ie8 이하
console.log("(-3): " str.substr(-2)) // (-20, 2): hij
console.log("( -3, 2): " str.substr(-2)); // (-20, 2): ab
// "Moz" 표시
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
// "lla" 표시
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));
// "Mozill" 표시
console.log(anyString.substring(0,6));
// "Mozilla" 표시
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));
3.slice는 문자열의 일부를 추출합니다.
param: BeginSlice가 문자 추출을 시작하는 위치 인덱스(음수일 수 있음)는 (sourceLength-beginSlice)로 간주됩니다. sourceLength는 문자열의 길이입니다. 문자열 끝에서 시작하는 position endSlice 추출이 끝나는 문자의 위치 인덱스입니다. 생략하면 추출이 완료됩니다. 음수인 경우 (sourceLength-endSlice)로 처리됩니다.
return: start로 시작(start 포함)하고 end로 끝나는(end 제외) 새 문자열을 반환합니다.
모든 매개변수는 음수일 수 있습니다. 인덱스가 음수이면 문자열 끝부터 계산됩니다.
var str = "아침이 다가왔습니다.";
str.slice(-3); // "우리."
str.slice(-3, -1) // "우리" "
str.slice(0, -1); // "아침이 다가왔습니다"