Javascript.RU

indexOf

Синтаксис

str.indexOf(searchValue[, fromIndex])

Аргументы

searchValue
искомая подстрока
fromIndex
позиция, с которой начинать поиск: от 0 до длины строки-1

Описание, примеры

Поиск осуществляется слева направо. Метод чувствителен к регистру символов.

"Привет, мир".indexOf("Привет")    // вернет 0
"Привет, мир".indexOf("Корова")    // вернет -1
"Привет, мир".indexOf("мир")    // вернет 8
"Привет, мир".indexOf("Мир") // вернет -1
Пример: с позицией
"Привет, мир".indexOf("Привет", 0)    // вернет 0
"Привет, мир".indexOf("р", 1)    // вернет 1
"Привет, мир".indexOf("р", 5)    // вернет 10

Пустая подстрока находится в любом случае:

Пример: для пустой подстроки
"Привет, мир".indexOf("", 5)    // вернет 5
"Привет, мир".indexOf("", 7)    // вернет 7
"Привет, мир".indexOf("", 999)    // вернет 11 (длину)

Следующий пример демонстрирует использование indexOf для подсчета количества повторений буквы в строке.

count = 0;
pos = str.indexOf("x");
while ( pos != -1 ) {
   count++;
   pos = str.indexOf("x",pos+1);
}

Автор: Бобр, дата: 29 января, 2010 - 18:33
#permalink

А можно сделать indexOf нечувствительным к регистру?


Автор: Гость (не зарегистрирован), дата: 18 августа, 2013 - 19:29
#permalink

Бобр, если java чувствителен к регистру, то как там может быть хоть что-нибудь, не чувствительное к регистру?


Автор: Гость (не зарегистрирован), дата: 16 января, 2014 - 12:33
#permalink

Это не Java


Автор: Гость (не зарегистрирован), дата: 18 сентября, 2017 - 17:07
#permalink

Еще какая ява


Автор: Гость (не зарегистрирован), дата: 31 марта, 2018 - 14:26
#permalink

не Java а JavaScript это разные языки


Автор: Val Che (не зарегистрирован), дата: 5 апреля, 2010 - 16:04
#permalink

Спасибо за подробное описание функции :-)


Автор: White Raven (не зарегистрирован), дата: 6 мая, 2010 - 18:05
#permalink

А что возвращает функция, если подстрока не найдена в строке?


Автор: White Raven (не зарегистрирован), дата: 6 мая, 2010 - 18:06
#permalink

А, прошу прощения, не посмотрел в примеры. Теперь ясно, что -1 ))


Автор: HukpoFuJl (не зарегистрирован), дата: 22 июля, 2010 - 03:23
#permalink

Здравствуйте... Вот написал кодик такой:

<script>
     var divs = document.getElementsByTagName("DIV");
     for (var i = 0; i < divs.length; i++){
         if(divs[i].id.indexOf('pa') == 0){
             var elems = divs[i].getElementsByTagName('*');
             for(var i=0; i<elems.length; i++){
                 if(elems[i].tagName.indexOf('a') == 0){
                      elems[i].parentNode.removeChild(elems[i]);
                 }
             }
         }
     }
 </script>

По сути должен работать так:
Находим все DIV элементы в массив,
Находим DIV, у которого ID начинается на "pa",
Получаем все дочерние элементы,
Получаем первый попавшийся элемент A,
Удаляем его.

Вроде всё правильно... вот только не работает... Вот кусок HTML'a который должен обрабатываться:

<div id="paKVyWMWe">
     <table border="0" cellspacing="0" cellpadding="0" class="caKVyWMWe" id="aKVyWMWe" style="z-index:10000;width:262px">
          <tbody>
               <tr>
                    <td valign="top" width="12">
                         <a href="javascript://" onclick="faKVyWMWe('none');return false;" title="Закрыть">
                              <img alt="" src="урл картинки" style="стиль">
                         </a>
                    </td>
                    <td width="250">
                         <script type="text/javascript">
                              document.write('<IFRAME (фрейм)></IFRAME>');
                         </script>
                         <iframe (фрейм)>
                         </iframe>
                    </td>
               </tr>
          </tbody>
     </table>
</div>

Автор: Гость (не зарегистрирован), дата: 22 июля, 2010 - 11:23
#permalink

Если поставить в строке кода if(elems[i].tagName.indexOf('а') == 0) имя тега а в верхний регистр то всё заработает : ))


Автор: Гость (не зарегистрирован), дата: 14 августа, 2011 - 05:08
#permalink

Скрипт не работает потому, что у Вас во внутреннем цикле for, как и в основном переенная i стоит. естественно, что переменная i меняет значение для обоих циклов, из-за чего и не работает. поставьте во внутреннем цикле другую переменную, j, к примеру.


Автор: Гость (не зарегистрирован), дата: 2 ноября, 2010 - 16:24
#permalink

pos = str.indexOf("x");

что означает pos ??


Автор: B@rmaley.e><e, дата: 2 ноября, 2010 - 16:40
#permalink

Переменная, в которую будет записана позиция символа.


Автор: Гость (не зарегистрирован), дата: 2 ноября, 2010 - 17:12
#permalink

а вы можете подскать как написать html код,в котором определяется является ли введенная строка в текстовое поле числом ,число должно быть >11


Автор: FreeStyler, дата: 6 октября, 2017 - 06:12
#permalink

Да, могу!


Автор: Гость (не зарегистрирован), дата: 7 ноября, 2010 - 17:34
#permalink

while ( pos != -1 )

объясните пожалуйста что это означает?


Автор: VelMizar (не зарегистрирован), дата: 17 мая, 2011 - 09:49
#permalink

Вы пишете :

"Привет, мир".indexOf("", 999) // вернет 11 (длину)

У меня результат почемуто = 0 , а не длине строки
Исползую: Mozilla

Пчему так?


Автор: VelMizar (не зарегистрирован), дата: 17 мая, 2011 - 09:55
#permalink

А как можно определить длину этой строки Если это не работает
"Привет, мир".indexOf("", 999) // вернет 11 (длину)


Автор: Гость (не зарегистрирован), дата: 9 июня, 2011 - 10:45
#permalink

VelMizar, длина строки:

alert("Привет, мир".length);

Автор: Гость (не зарегистрирован), дата: 23 июля, 2011 - 14:57
#permalink

что значит если "str.indexOf is not a function"(консоль ошибок FF)
ввожу всё верно


Автор: Гость (не зарегистрирован), дата: 23 июля, 2011 - 15:29
#permalink

Всё, понял. Просто искал не в строке, а в числе. Помог toString()


Автор: Гость (не зарегистрирован), дата: 15 сентября, 2011 - 14:49
#permalink

Как я понял, этот метод принимает только строки. Регулярное выражение он не находит, возвращает -1;


Автор: Questioner, дата: 21 марта, 2012 - 16:52
#permalink

а можно ли так искать эл-ты массива?


Автор: zhenya, дата: 31 мая, 2012 - 14:10
#permalink

Можно так:

var arr = ['su','sa','se'];
var prop = null;
for (prop in arr)
{
    if (arr[prop].indexOf('se'))
    {
        return arr[prop];
    }
}

Автор: Дмитрий Гецев Сергеевич (не зарегистрирован), дата: 7 августа, 2012 - 21:39
#permalink

Парни, возник такой вопрос.
Работаю с cookie и нужно найти начало и конец необходимого элемента.
Пишу например: myCookie.indexOf(5, ';');
Но ничего не получается, или нужно писать не порядковый номер символа, а фразу с которой будет отсчёт?


Автор: Гость (не зарегистрирован), дата: 27 октября, 2012 - 17:40
#permalink

Почему в описании функции нет Раздела "Возвращаемое значение" ?


Автор: Гость (не зарегистрирован), дата: 12 ноября, 2012 - 06:11
#permalink

"Привет, мир".indexOf("", 999) // вернет 11 (длину)
Результат зависит от реализации JavaScript.
В AfterEffects результат -1


Автор: YorikoSC, дата: 1 декабря, 2013 - 14:47
#permalink

Потрите комментарий пожалуйста, я разобрался.


Автор: Skvor, дата: 29 декабря, 2013 - 20:35
#permalink

А с чего в языке реализовано два метода - indexOf и search?


Автор: Гость (не зарегистрирован), дата: 2 января, 2014 - 16:59
#permalink
some_word = /word1|word2|word3/i;
while (txt.indexOf(some_word)>=0)

А как тут работает indexOf ? Я не пойму что это за перемен. создается some_word Это массив?? Зачем / Зачем i ???? Объясните пож.


Автор: Гость (не зарегистрирован), дата: 23 августа, 2014 - 18:27
#permalink

это судя по всему регистронезависимое регулярное выражение


Автор: Гость (не зарегистрирован), дата: 19 марта, 2015 - 18:53
#permalink

Не могу понять для чего здесь pos+1.


Автор: Гость (не зарегистрирован), дата: 25 марта, 2015 - 15:14
#permalink

Чтобы не получить опять тоже значение, что и на предыдущей итерации.


 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum