Javascript.RU

PHP-функция: strpos

Javascript:

function strpos( haystack, needle, offset){	// Find position of first occurrence of a string
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

	var i = haystack.indexOf( needle, offset ); // returns -1
	return i >= 0 ? i : false;
}

Примеры:

strpos('Kevin van Zonneveld', 'e', 5);
14


Автор: chu4___x, дата: 12 ноября, 2009 - 15:21
#permalink

Слишком простая функция, а если нужно получить позицию не 1, а скажем... 3 совпадения? Предлагаю свой вариант:

/*
Примеры.
1. strpos({str: 'Bla-bla-bla...', find: '.', index: 3}); // Вернёт 13
2. strpos({str: 'Bla-bla-bla...', find: '.', index: 4}); // Вернёт null
3. strpos({str: 'Bla-bla-bla...', find: 'bla', index: 1}); // Вернёт 4
*/
function strpos(data) {
   // Created by Mark Tali [webcodes.ru]
   // Example. Return 8, but if index > 2, then return null
   // strpos({str: 'Bla-bla-bla...', find: 'bla', index: 2});
   var haystack = data.str, needle = data.find, offset = 0;
   for (var i = 0; i < haystack.split(needle).length; i++) {
   var index = haystack.indexOf(needle, offset + (data.index != 1 ? 1 : 0));
   if (i == data.index - 1) return (index != -1 ? index : null); else offset = index;
   }
}

Автор: senya (не зарегистрирован), дата: 5 ноября, 2010 - 16:51
#permalink

а что за параметр offset в первой ф-ции ?


Автор: B@rmaley.e><e, дата: 5 ноября, 2010 - 18:09
#permalink

Индекс, начиная с которого производить поиск.


Автор: Гость (не зарегистрирован), дата: 17 мая, 2011 - 11:46
#permalink

Спасибо, очень пригодилось


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

Спасибо большое! Пригодилось.


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2022 - 07:16
#permalink

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

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 4 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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