String.prototype.indexOf()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Сводка
ÐеÑод indexOf() возвÑаÑÐ°ÐµÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¿ÐµÑвого вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñказанного знаÑÐµÐ½Ð¸Ñ Ð² ÑÑÑоковÑй обÑÐµÐºÑ String, на коÑоÑом он бÑл вÑзван, наÑÐ¸Ð½Ð°Ñ Ñ Ð¸Ð½Ð´ÐµÐºÑа fromIndex. ÐозвÑаÑÐ°ÐµÑ -1, еÑли знаÑение не найдено.
ÐнÑеÑакÑивнÑй пÑимеÑ
const paragraph = "I think Ruth's dog is cuter than your dog!";
const searchTerm = "dog";
const indexOfFirst = paragraph.indexOf(searchTerm);
console.log(`The index of the first "${searchTerm}" is ${indexOfFirst}`);
// Expected output: "The index of the first "dog" is 15"
console.log(
`The index of the second "${searchTerm}" is ${paragraph.indexOf(
searchTerm,
indexOfFirst + 1,
)}`,
);
// Expected output: "The index of the second "dog" is 38"
СинÑакÑиÑ
indexOf(searchString)
indexOf(searchString, position)
ÐаÑамеÑÑÑ
searchValue-
СÑÑока, пÑедÑÑавлÑÑÑÐ°Ñ Ð¸Ñкомое знаÑение.
fromIndex-
ÐеобÑзаÑелÑнÑй паÑамеÑÑ. ÐеÑÑоположение внÑÑÑи ÑÑÑоки, оÑкÑда наÑинаÑÑ Ð¿Ð¾Ð¸Ñк. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑбÑм ÑелÑм ÑиÑлом. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑановлено в 0. ÐÑли
fromIndex < 0, поиÑк ведÑÑÑÑ Ð¿Ð¾ вÑей ÑÑÑоке (Ñак же, как еÑли Ð±Ñ Ð±Ñл пеÑедан 0). ÐÑлиfromIndex >= str.length, меÑод веÑнÑÑ -1, но ÑолÑко в Ñом ÑлÑÑае, еÑлиsearchValueне Ñавен пÑÑÑой ÑÑÑоке, в ÑÑом ÑлÑÑае он веÑнÑÑstr.length.
ÐпиÑание
Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð² ÑÑÑоке идÑÑ Ñлева напÑаво. ÐÐ½Ð´ÐµÐºÑ Ð¿ÐµÑвого Ñимвола Ñавен 0, а поÑледнего Ñимвола в ÑÑÑоке stringName Ñавен stringName.length - 1.
"Синий киÑ".indexOf("Синий"); // веÑнÑÑ 0
"Синий киÑ".indexOf("ÐолÑбой"); // веÑнÑÑ -1
"Синий киÑ".indexOf("киÑ", 0); // веÑнÑÑ 6
"Синий киÑ".indexOf("киÑ", 5); // веÑнÑÑ 6
"Синий киÑ".indexOf("", 8); // веÑнÑÑ 8
"Синий киÑ".indexOf("", 9); // веÑнÑÑ 9
"Синий киÑ".indexOf("", 10); // веÑнÑÑ 9
РегиÑÑÑозавиÑимоÑÑÑ
ÐеÑод indexOf() ÑвлÑеÑÑÑ ÑегиÑÑÑозавиÑимÑм. ÐапÑимеÑ, ÑледÑÑÑее вÑÑажение веÑнÑÑ -1:
"Синий киÑ".indexOf("Ñиний"); // веÑнÑÑ -1
ÐÑовеÑка на Ð²Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ðµ
ÐбÑаÑиÑе внимание, ÑÑо знаÑение 0 не вÑÑиÑлÑеÑÑÑ Ð² true, а знаÑение -1 не вÑÑиÑлÑеÑÑÑ Ð² false. ÐоÑÑомÑ, Ð´Ð»Ñ Ð¿ÑовеÑки Ñого, ÑÑо конкÑеÑÐ½Ð°Ñ ÑÑÑока ÑодеÑжиÑÑÑ Ð² дÑÑгой ÑÑÑоке, пÑавилÑно делаÑÑ Ñак:
"Синий киÑ".indexOf("Синий") !== -1; // true
"Синий киÑ".indexOf("ÐолÑбой") !== -1; // false
ÐÑимеÑÑ
>ÐÑимеÑ: иÑполÑзование меÑодов indexOf() и lastIndexOf()
Ð ÑледÑÑÑем пÑимеÑе иÑполÑзÑÑÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ indexOf() и lastIndexOf() Ð´Ð»Ñ Ð½Ð°Ñ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений в ÑÑÑоке "ÐивнÑй новÑй миÑ".
var anyString = "ÐивнÑй новÑй миÑ";
console.log(
"ÐÐ½Ð´ÐµÐºÑ Ð¿ÐµÑвого вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Â«Ð¹Â» Ñ Ð½Ð°Ñала ÑÑÑоки Ñавен " +
anyString.indexOf("й"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ 5
console.log(
"ÐÐ½Ð´ÐµÐºÑ Ð¿ÐµÑвого вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Â«Ð¹Â» Ñ ÐºÐ¾Ð½Ñа ÑÑÑоки Ñавен " +
anyString.lastIndexOf("й"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ 11
console.log(
"ÐÐ½Ð´ÐµÐºÑ Ð²Ñ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Â«Ð½Ð¾Ð²Ñй» Ñ Ð½Ð°Ñала ÑÑÑоки Ñавен " +
anyString.indexOf("новÑй"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ 7
console.log(
"ÐÐ½Ð´ÐµÐºÑ Ð²Ñ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Â«Ð½Ð¾Ð²Ñй» Ñ ÐºÐ¾Ð½Ñа ÑÑÑоки Ñавен " +
anyString.lastIndexOf("новÑй"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ 7
ÐÑимеÑ: меÑод indexOf() и ÑегиÑÑÑозавиÑимоÑÑÑ
Ð ÑледÑÑÑем пÑимеÑе опÑеделÑÑÑÑÑ Ð´Ð²Ðµ ÑÑÑоковÑÑ
пеÑеменнÑÑ
. ÐеÑеменнÑе ÑодеÑÐ¶Ð°Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе ÑÑÑоки, за иÑклÑÑение Ñого, ÑÑо Ñлова во вÑоÑой ÑÑÑоке наÑинаÑÑÑÑ Ñ Ð·Ð°Ð³Ð»Ð°Ð²Ð½ÑÑ
бÑкв. ÐеÑвÑй вÑзов меÑода console.log() оÑобÑÐ°Ð·Ð¸Ñ 18. Ðо поÑколÑÐºÑ Ð¼ÐµÑод indexOf() ÑвлÑеÑÑÑ ÑегиÑÑÑозавиÑимÑм, ÑÑÑока "ÑеддеÑ" в пеÑеменной myCapString не бÑÐ´ÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°, Ñак ÑÑо вÑоÑой вÑзов меÑода console.log() оÑобÑÐ°Ð·Ð¸Ñ -1.
var myString = "бÑи, Ð¿ÐµÐ¿Ð¿ÐµÑ Ð´Ð¶ÐµÐº, ÑеддеÑ";
var myCapString = "ÐÑи, ÐÐµÐ¿Ð¿ÐµÑ Ðжек, ЧеддеÑ";
console.log(
'ÐÑзов myString.indexOf("ÑеддеÑ") веÑнÑл ' + myString.indexOf("ÑеддеÑ"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ 18
console.log(
'ÐÑзов myCapString.indexOf("ÑеддеÑ") веÑнÑл ' + myCapString.indexOf("ÑеддеÑ"),
);
// ÐÑобÑÐ°Ð·Ð¸Ñ -1
ÐÑимеÑ: иÑполÑзование меÑода indexOf() Ð´Ð»Ñ Ð¿Ð¾Ð´ÑÑÑÑа вÑ
ождений бÑÐºÐ²Ñ Ð² ÑÑÑокÑ
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°Ñение пеÑеменной count в колиÑеÑÑво вÑ
ождений бÑÐºÐ²Ñ Ð² в ÑÑÑÐ¾ÐºÑ str:
var str = "ÐÑÑÑ Ð¸Ð»Ð¸ не бÑÑÑ, Ð²Ð¾Ñ Ð² ÑÑм вопÑоÑ.";
var count = 0;
var pos = str.indexOf("в");
while (pos !== -1) {
count++;
pos = str.indexOf("в", pos + 1);
}
console.log(count); // оÑобÑÐ°Ð·Ð¸Ñ 3
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.indexof> |