>  기사  >  웹 프론트엔드  >  IndexOf 및 lastIndexOf 사용 예 Introduction_javascript 기술

IndexOf 및 lastIndexOf 사용 예 Introduction_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:37:571737검색

indexOf의 목적은 문자열에서 단어의 위치를 ​​찾는 것입니다

lastIndexOf도 단어 검색인데, 차이점은 전자는 문자열의 처음부터 시작하고 후자는 문자열의 끝에서 시작한다는 점입니다.

지정된 단어를 찾으면 해당 단어의 현재 위치 번호가 반환됩니다. 찾을 수 없으면 -1을 반환합니다.

var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.indexOf("/")); //0
console.log(str.lastIndexOf("/")); //39

매개변수 1은 검색할 단어이며 반드시 str이어야 하며 정규식은 작동하지 않습니다.

두 번째 매개변수도 허용합니다. 숫자 유형을 사용하면 검색 범위를 지정할 수 있습니다.

var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.indexOf("/", 0)); //0 默认情况是 0
console.log(str.lastIndexOf("/", str.length)); //39 默认情况是 str.length

두 가지 방법의 제어 방향이 다릅니다.

indexOf를 10으로 설정하면 검색 범위는 10부터 str.length(문자 끝)까지입니다

lastIndexOf를 10으로 설정하면 검색 범위는 10~0(prefix)이 됩니다

이 점을 주의하셔야 합니다.

ps: -500 등 음수로 설정하면 스스로도 이해할 수 없는 이상한 현상이 발생합니다 = = " ;

때때로 n번째 항목을 지정하고 싶을 경우 위의 방법을 통해 이를 달성할 수 있습니다.

예:

String.prototype.myIndexOf = function (searchValue, startIndex) { 
var text = this;
startIndex = startIndex || 1; 
var is_negative = startIndex < 0;
var ipos = (is_negative) &#63; text.length + 1 : 0 - 1; 
var loopTime = Math.abs(startIndex);
for (var i = 0; i < loopTime ; i++) {
ipos = (is_negative) &#63; text.lastIndexOf(searchValue, ipos - 1) : text.indexOf(searchValue, ipos + 1);
if (ipos == -1) break;
}
return ipos;
}
var str = "//www.stooges.com.my/test/index.aspx123/";
console.log(str.myIndexOf("/", 3)); //20
console.log(str.myIndexOf("/", -2)); //25 倒数第2个的位置
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.