Поиск осуществляется слева направо. Метод чувствителен к регистру символов.
"Привет, мир".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);
}
А можно сделать indexOf нечувствительным к регистру?
'StRiNg'.toLowerCase().indexOf('STRING'.toLowerCase())Спасибо. Я думал, что в indexOf можно какой-нибудь параметр дописать, чтобы было с учётом регистра.
Спасибо за подробное описание функции :-)
А что возвращает функция, если подстрока не найдена в строке?
А, прошу прощения, не посмотрел в примеры. Теперь ясно, что -1 ))
Здравствуйте... Вот написал кодик такой:
<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>Если поставить в строке кода if(elems[i].tagName.indexOf('а') == 0) имя тега а в верхний регистр то всё заработает : ))
Скрипт не работает потому, что у Вас во внутреннем цикле for, как и в основном переенная i стоит. естественно, что переменная i меняет значение для обоих циклов, из-за чего и не работает. поставьте во внутреннем цикле другую переменную, j, к примеру.
pos = str.indexOf("x");
что означает pos ??
Переменная, в которую будет записана позиция символа.
а вы можете подскать как написать html код,в котором определяется является ли введенная строка в текстовое поле числом ,число должно быть >11
while ( pos != -1 )
объясните пожалуйста что это означает?
http://javascript.ru/while
asdasdsaaqwewqeasdsdweasdasdwew
ewq
ewq
Вы пишете :
"Привет, мир".indexOf("", 999) // вернет 11 (длину)
У меня результат почемуто = 0 , а не длине строки
Исползую: Mozilla
Пчему так?
А как можно определить длину этой строки Если это не работает
"Привет, мир".indexOf("", 999) // вернет 11 (длину)
VelMizar, длина строки:
alert("Привет, мир".length);что значит если "str.indexOf is not a function"(консоль ошибок FF)
ввожу всё верно
Всё, понял. Просто искал не в строке, а в числе. Помог toString()
Как я понял, этот метод принимает только строки. Регулярное выражение он не находит, возвращает -1;
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.