Rumah  >  Artikel  >  hujung hadapan web  >  indexOf dan lastIndexOf contoh penggunaan pengenalan_javascript kemahiran

indexOf dan lastIndexOf contoh penggunaan pengenalan_javascript kemahiran

WBOY
WBOYasal
2016-05-16 16:37:571745semak imbas

Tujuan indexOf adalah untuk mencari kedudukan perkataan dalam rentetan

lastIndexOf juga merupakan carian perkataan Perbezaan antara mereka ialah yang pertama bermula dari permulaan rentetan dan yang terakhir bermula dari penghujung rentetan.

Setelah perkataan yang ditentukan ditemui, nombor kedudukan semasa perkataan akan dikembalikan. Jika tidak dijumpai, kembalikan -1.

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

Parameter 1 ialah perkataan yang perlu dicari, ia mestilah str, ungkapan biasa tidak akan berfungsi.

Juga ia menerima parameter ke-2. Jenis nombor, ini membolehkan kami menentukan julat carian.

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

Kawalan kedua-dua kaedah adalah dalam arah yang berbeza.

Anggapkan indexOf ditetapkan kepada 10, maka julat carian adalah dari 10 hingga str.length (akhir aksara)

Jika lastIndexOf ditetapkan kepada 10, julat carian ialah dari 10 hingga 0 (awalan)

Anda harus memberi perhatian kepada perkara ini.

ps: Jika ia ditetapkan kepada nombor negatif seperti -500, akan berlaku fenomena aneh yang saya sendiri tidak faham = = " ;

Kadang-kadang kita nak tentukan yang ke-n lepas tu kita boleh capai melalui kaedah di atas.

Contohnya:

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个的位置
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn