자바스크립트 lastIndexOf, 의 사용방법 및 slice, substring 함수

자바스크립트 lastIndexOf, 의 사용방법 및 slice, substring 함수

작성일 2012.03.24댓글 1건
    게시물 수정 , 삭제는 로그인 필요

var i =  "010-1234-5678" 이라는 문자열이 있다면

i.indexOf(5)를 하게 되면

9라는 숫자가 나옵니다.

하지만 i.lastIndexOf(5)를 해도 똑같이 9라는 숫자가 반환되는데...

설명은 lastIndexOf()가 오른쪽부터 몇번째인지를 반환하는것 같은데,

제가 알고 있는 것이 틀린 것인지, 아니면 사용방법이 틀린것인지...

 

그리고 slice 함수와 substring 함수가 뭐가 다른지 또한 궁금합니다...

i.slice(2,4) 해도 0-12 가 나오고

i.substring(2,4) 해도 0-12 가 나오니... 뭐가 다른지 알고싶습니다.

 

이해할 수 있도록 도움부탁드립니다.

 


#자바스크립트 lastindexof

profile_image 익명 작성일 -

안녕하세요..

혼동을 하시는 부분이 있으십니다.
어디까지 혼동하고 계시는지는 알 수가 없기에 차근차근 짚어봐야 할 것 같습니다.
일단 한번 차근차근 살펴보세요.

indexOf 랑 lastIndexOf는 검색된 문자열의 위치값을 반환하는 것입니다.

대상문자열.indexOf(검색할 문자)
대상문자열.lastIndexOf(검색할 문자)

그리고 오른쪽부터 몇 번째 위치값을 찾는 것이 아니라, 검색을 시작하는 방향을 뜻합니다.

아래와 같이 숫자를 수정해보시고 실행해보시면 이해하시기가 쉬우실 겁니다.
var i =  "010-5234-5678";
i.indexOf(5)    => 왼쪽에서 오른쪽으로 검색하여 숫자5가 있는 위치값은 4입니다.
i.lastIndexOf(5) => 오른쪽에서 왼쪽으로 검색하여 숫자5를 찾습니다. 위치값은 9가 됩니다.

문자열에서의 위치값은 정해져 있는 것입니다.
indexOf가 검색한 문자의 위치값이 다르고 lastIndexOf가 검색한 문자의 위치가 다른 것이 아니라
해당 문자가 위치한 위치를 말합니다.
즉, 검색을 시작하는 방향만 다르다는 것만 확인하시면 되겠습니다.
 "010-1234-5678"   <= 여기서 숫자 5는 9번지 위치에 존재합니다. indexOf로 검색을 하던 lastIndexOf로 검색하던 숫자 5 하나 밖에 없기 때문에 그 위치값 역시 유일한 값입니다. 


slice와 substring 문제이군요..
String.slice(n, m)
slice는 문자열의 앞에서부터 n개의 문자를 자르고 m번째 이후의 문자도 자릅니다.
그리고 남아 있는 나머지 문자열만 반환합니다.
쉽게 말해서 잡지에 좋아하는 연얘인이나 가수를 가위로 오리는 것을 생각하시면 됩니다.
불필요한 여백만 가위로 다 잘라서 버리는 것이지요.

"0123456789".slice(3, 6)   =>  345 반환
"0123456789".slice(3, -2)  => 34567 반환 (-1은 제일 끝에 있는 문자 하나를 자릅니다)
"0123456789".slice(3, -7)  => 없음  (자를 수 없는 위치값까지 초과해서 잘랐기에 남은게 없습니다)


substring은 n부터 m까지를 반환합니다.
slice처럼 잘라버리고 그러는 것이 아니라 "어디서부터 어디까지.." 라는 범위를 뜻하는 의미를 갖습니다.

"0123456789".substring(3, 6)   =>  345 반환 (여기까지는 slice와 결과는 같습니다.)
"0123456789".substring(3, -2)  => 012 반환 (음수를 인정하지 않습니다. 0위치 보다 음수가 한참 왼쪽에 있다고 간주하고 3위치 시작지점부터 왼쪽에 문자열 전체를 반환합니다.)
"0123456789".substring(3, -7)  =>  012 반환 (위랑 다르지 않지요.)

"0123456789".substring(4, 2)  =>  23 반환( 항상 왼쪽에서 오른쪽으로 반환하는 것이 아니라 이렇게 역방향으로도 반환할 문자열의 범위를 지정할 수 있습니다. )

사용방법 및 slice, substring 함수

... 하지만 i.lastIndexOf(5)를 해도 똑같이 9라는 숫자가... 아니면 사용방법이 틀린것인지... 그리고 slice 함수substring 함수가 뭐가 다른지 또한 궁금합니다......

자바스크립트의 모든것

... 메소드 : 객체에 어떤 작업을 할 때 사용하는 함수. 객체 유형 만들기 사용자가 직접 객체 유형을 정의하고 특정 객체 인스턴스를 만들 수 있 는데...