자바스크립트에서 문자열을 찾기 위한 방법 중 lastIndexOf 메서드가 있다. 이것은 장문의 문자열에서 사용자가 원하는 문자열을 찾는 기능을 하며 문자열을 찾게 되면 찾은 문자열의 첫번째 단어의 인덱스번호를 가져온다. 중복된 문자열인 경우 가장 마지막에 탐색된 문자열이 선택된다. indexOf 메서드와 방향이 다르다. 쉽게 말해 indexOf 는 앞에서부터 찾기, lastIndexOf 메서드는 뒤에서부터 찾기 정도로 이해하자.
자바스크립트 문자열 찾기 lastIndexOf 메서드 시작위치 지정
javascript string search lastIndexOf method start position
특정 문자열을 찾기 위해 장문의 문자열의 뒤에서부터 탐색할 필요도 있다.
lastIndexOf 는 indexOf 오는 다르게 찾을 문자열이 중복된 경우 가장 뒤에 있는 문자열의 첫번째 문자의 인덱스번호를 가져온다.
중복되지 않는다면 indexOf 메서드나 lastIndexOf 메서드나 기능은 같다.
두번째 인자값 숫자를 넣어주면 시작위치를 지정할 수 있으며 문장의 뒤에서부터 문자열을 탐색한다.
보통 우리가 생각하는 에디터에서 특정문자열을 찾을 때 뒤에서부터 찾기 또는 앞에서부터 찾기 등이 여기에 속한다.
사용방법
lastIndexOf 메서드에 시작위치를 지정하는 것은 어렵지 않다.
두번째 인자값으로 숫자를 넣어주면 그만이다.
String.lastIndexOf("찾을문자열", 시작위치)
lastIndexOf 의 특징을 다시 생각해 보자.
중복되는 문자열이 있을 경우 가장 마지막에 있는 문자열의 첫번째 문자 인덱스번호를 가져온다.
뒤에서부터 탐색이 이루어진다는 것을 알 수 있다.
샘플코드
위의 내용을 가지고 lastIndexOf 메서드를 사용해 본다.
이전에 사용한 코드를 이용할 것이며, 조금 수정할 것이다.
코드가 길어보이지만 중요한 것인 lastIndexOf 메서드의 사용과 인덱스번호를 -1 하고 있다는 점이다.
<!DOCTYPE html>
<html>
<body>
<h1>자바스크립트 문자열 lastIndexOf 메서드 시작위치 지정</h1>
<script>
console.log("----------");
let vStr = "블랙핑크, 블랙핑크, 블랙핑크, 블랙핑크";
console.log(typeof(vStr), vStr);
let vIdx = 0;
vIdx = vStr.lastIndexOf("블랙핑크");
console.log(typeof(vIdx), vIdx);
vIdx = ResetStartIndex(vIdx);
vIdx = vStr.lastIndexOf("블랙핑크", vIdx);
console.log(typeof(vIdx), vIdx);
vIdx = ResetStartIndex(vIdx);
vIdx = vStr.lastIndexOf("블랙핑크", vIdx);
console.log(typeof(vIdx), vIdx);
vIdx = ResetStartIndex(vIdx);
vIdx = vStr.lastIndexOf("블랙핑크", vIdx);
console.log(typeof(vIdx), vIdx);
vIdx = ResetStartIndex(vIdx);
vIdx = vStr.lastIndexOf("blackpink", vIdx);
console.log(typeof(vIdx), vIdx);
console.log("----------");
function ResetStartIndex(pIndex){
return ( pIndex - 1 );
}
</script>
</body>
</html>
결과화면을 먼저 보고 생각해 보자.
백문이 불여일견이다.
lastIndexOf 메서드가 단어를 찾기 시작하면 중복된 문자열의 경우 가장 마지막 문자열의 첫단어의 인덱스번호를 가지고 온다고 언급했다.
첫번째로 검색한 단어의 인덱스번호는 18이다.
시작위치를 -1 하여 다시 정의하면 두번째로 뒤에 있는 단어가 출력된다.
위치값이 변경될 때마다 뒤에서부터 탐색되는 것을 확인할 수 있다.
댓글