[js] indexOf, lastIndexof 함수

HOU·2022년 9월 28일
0

JavaScript

목록 보기
18/20
post-thumbnail

원하는 text의 위치를 알고 싶을때

우리는 작업을 하면서 원하는 인덱스의 값을 찾고 싶을 때가 있다. 예를 들면 path중에서 파일명의 위치를 알고 싶다거나, 문자열에서 원하는 단어의 위치를 찾고 싶을 때 사용할 수 있을 것이다.

indexOf()

let fruit = "apple, banana, orange"

fruit.indexOf("apple") //0
fruit.indexOf("banana") //7

이렇게 index의 위치를 확인 할수 있고 substr 이나 substring함수를 사용하여 원하는 부분만 가져올 수 있을 것이다.

but

중복된 단어들이 있을 때 indexOf() 는 해당 단어들 중 가장 처음의 것을 찾아낸다. 근데 우리는 가장 마지막에 있는 단어들을 찾고 싶을 때가 있다. 예를들면 파일의 directory만 찾아내는 경우!

let filepath = "/this/is/test/test"

//indexOf() 함수를 사용한 후에 디렉토리만 찾고자 한다면
filepath.substring(0, filepath.indexOf("test")) // "this/is/" 라는 값이 나올 것이다.

이러면 우리가 원하는 directory가 아니다.. 이럴 때 사용하는 것이 lastIndexOf()이다.

lastIndexOf

이 함수를 사용하면 맨 해당 단어들 중 마지막 index를 반환한다.

let filepath = "/this/is/test/test"

//indexOf() 함수를 사용한 후에 디렉토리만 찾고자 한다면
filepath.substring(0, filepath.lastIndexOf("test")) // "this/is/test" 라는 값이 나올 것이다.

이렇게 사용해 볼 수 있다.

하지만 저런 / 패턴이 있는 경우는 정규표현식을 통해 걸러 낼수 있다. 그건 나중에 알아보자.

profile
하루 한 걸음 성장하는 개발자

1개의 댓글

comment-user-thumbnail
2022년 11월 3일

Of course!

답글 달기