Подтвердить что ты не робот

JQuery или JavaScript-эквивалент функции PHP strpos для поиска строки на странице

Есть ли эквивалентная функция в JavaScript или jQuery, подобная strpos в PHP?

Я хочу найти строку внутри элемента на странице. Строка, которую я ищу, это:

td class="SeparateColumn"

Мне хотелось бы что-то, где я могу запустить его так:

if $("anystring")
  then do it
4b9b3361

Ответ 1

Я предполагаю, что вы имеете в виду проверить, содержит ли строка символ, а также позицию в строке - вы хотите использовать метод indexOf() для строки в JS. Вот соответствующие документы.


Хорошо, так что вам нужно искать всю страницу! Селектор :contains() сделает это. См. jQuery docs для :contains.

Для поиска каждого элемента на странице используйте

var has_string = $('*:contains("search text")');

Если вы возвращаете элементы jQuery, поиск был успешным. Например, на этой самой странице

var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.

Ответ 2

Вам не нужен jquery для этого - простой старый Javascript будет отлично работать, используя метод .indexof().

Однако, если вам действительно нужно точное соответствие синтаксиса для PHP strpos(), что-то вроде этого:

function strpos (haystack, needle, offset) {
  var i = (haystack+'').indexOf(needle, (offset || 0));
  return i === -1 ? false : i;
}

Примечание. Эта функция взята здесь: http://phpjs.org/functions/strpos:545

JSFiddle