차이점은 무엇입니까
alert("abc".substr(0,2));
과
alert("abc".substring(0,2));
둘 다“ab”를 출력하는 것 같습니다.
답변
차이점은 두 번째 주장에 있습니다. 두 번째 인수 substring
는 중지 할 인덱스 (포함하지는 않음)이지만 두 번째 인수 substr
는 반환 할 최대 길이입니다.
연결?
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring
답변
substring
( MDN )은 매개 변수를로 사용 (from, to)
합니다.
substr
( MDN )은 매개 변수를로 사용 (from, length)
합니다.
업데이트 : MDN은 substr
레거시를 고려 합니다.
alert("abc".substr(1,2)); // returns "bc"
alert("abc".substring(1,2)); // returns "b"
substring
또 다른 문자열 추출 방법 인 slice 와 같이 인덱스 를 기억할 수 있습니다 .
0에서 시작할 때 두 방법 중 하나를 사용할 수 있습니다.
답변
yatima2975의 답변에서 암시 된 것처럼 추가 차이점이 있습니다.
substr()
음의 시작 위치를 문자열 끝의 오프셋으로 받아들입니다. substring()
하지 않습니다.
에서 MDN :
start가 음수이면 substr ()은 문자열 끝에서 문자 인덱스로 사용합니다.
기능상의 차이점을 요약하면 다음과 같습니다.
substring(begin-offset, end-offset-exclusive)
시작 오프셋이 0
큰 곳
substr(begin-offset, length)
시작 오프셋도 음수 일 수 있습니다.
답변
내가 최근에 겪은 또 다른 문제는 IE 8에서는 "abcd".substr(-1)
잘못 반환 "abcd"
하지만 Firefox 3.6은 정상적으로 반환 "d"
한다는 것입니다. slice
둘 다에서 올바르게 작동합니다.
이 주제에 대한 자세한 내용은 여기를 참조하십시오 .
답변
가장 큰 차이점은
substr ()을 사용하면 반환 할 최대 길이를 지정할 수 있습니다.
substring ()을 사용하면 인덱스를 지정할 수 있으며 두 번째 인수는 포함되지 않습니다
substr ()과 substring () 사이에는 등가 인수 및 음수 인수 처리와 같은 추가적인 미묘한 부분이 있습니다. 또한 substring ()과 slice ()는 비슷하지만 항상 같은 것은 아닙니다.
//*** length vs indices:
"string".substring(2,4); // "ri" (start, end) indices / second value is NOT inclusive
"string".substr(2,4); // "ring" (start, length) length is the maximum length to return
"string".slice(2,4); // "ri" (start, end) indices / second value is NOT inclusive
//*** watch out for substring swap:
"string".substring(3,2); // "r" (swaps the larger and the smaller number)
"string".substr(3,2); // "in"
"string".slice(3,2); // "" (just returns "")
//*** negative second argument:
"string".substring(2,-4); // "st" (converts negative numbers to 0, then swaps first and second position)
"string".substr(2,-4); // ""
"string".slice(2,-4); // ""
//*** negative first argument:
"string".substring(-3); // "string"
"string".substr(-3); // "ing" (read from end of string)
"string".slice(-3); // "ing"
답변
차이점은 두 번째 매개 변수입니다. 두 번째 매개 변수는 두 숫자 모두 두 가지 다른 것을 기대합니다.
하위 문자열을 사용할 때 두 번째 매개 변수는 포함하지 않는 첫 번째 색인입니다.
var s = "string";
s.substring(1, 3); // would return 'tr'
var s = "another example";
s.substring(3, 7); // would return 'ther'
substr을 사용할 때 두 번째 매개 변수는 하위 문자열에 포함 할 문자 수입니다.
var s = "string";
s.substr(1, 3); // would return 'tri'
var s = "another example";
s.substr(3, 7); // would return 'ther ex'
답변
큰 차이는되어 substr()
있습니다 사용되지 않는 방법을 계속 사용할 수 있지만이 완전히 미래에 언젠가 제거 될 것으로 예상되기 때문에주의해서 사용해야합니다. 코드에서 사용을 제거하기 위해 노력해야합니다. 그리고 그 substring()
방법은 성공했고 전자를 지정했다.