Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2008, 05:19
YAN
 
Сообщений: n/a

Поиск в строке другой подстроки средствами JS
Есть ли какая-то ф-я поиска в строке другой подстроки?
как это можно реализовать.

Например мне нужно знать есть ли в строке
http://yandex.ru/yandsearch?text=wwww&lr=187
слово yandex.ru


Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2008, 05:38
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

var str = 'http://www.yandex.ru';
if(str.indexOf('yandex.ru') + 1) {
...
}
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2011, 19:03
Интересующийся
Отправить личное сообщение для Беляш Посмотреть профиль Найти все сообщения от Беляш
 
Регистрация: 14.03.2010
Сообщений: 16

Octane, а зачем здесь +1 в условии? Просто не пойму, а хотелось бы понять.
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2011, 19:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

indexOf() возвращает если не найдено -1, если найдено - позицию вхождения. В js 0==false, любое др. число даёт true;
alert([
!!0,
!!-1,
!!6
])


Вообще с энтим indexOf() каждый извращается как может).
if( ~a.indexOf(b) )
if(  a.indexOf(b)>-1 )
if(  a.indexOf(b)!=-1 )
if(  a.indexOf(b)+1 )

итд)

Последний раз редактировалось Aetae, 23.01.2011 в 19:36.
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2011, 19:45
Аспирант
Отправить личное сообщение для ASerputko Посмотреть профиль Найти все сообщения от ASerputko
 
Регистрация: 20.10.2010
Сообщений: 73

Можно использовать регулярные выражения
var url = "http://yandex.ru/yandsearch?text=wwww&lr=187"; // юрл в котором происходит поиск
var regV = /yandex\.ru/gi;     // шаблон
var result = url.match(regV);  // поиск шаблона в юрл

// вывод результата
if (result) {
    document.write("Совпадение найдено")
} else {
    document.write("Совпадение не найдено")
}
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2011, 19:47
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Сообщение от ASerputko Посмотреть сообщение
Можно использовать регулярные выражения
Но не нужно, если можно обойтись.
Ответить с цитированием
  #7 (permalink)  
Старый 16.02.2011, 00:19
Интересующийся
Отправить личное сообщение для blessmaster Посмотреть профиль Найти все сообщения от blessmaster
 
Регистрация: 13.11.2010
Сообщений: 14

Кагбэ
if(false !== str.indexOf('yandex.ru')) {
    ...
}

или
var pos = str.indexOf('yandex.ru');
if(false !== pos) {
    ...
}

если нужна позиция вхождения
Ответить с цитированием
  #8 (permalink)  
Старый 16.02.2011, 01:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Щито? 0_о
alert([
false !== 'yandex.ru_'.indexOf('yandex.ru'),
false !== 'andex.ru_'.indexOf('yandex.ru'),
false !== '_yandex.ru_'.indexOf('yandex.ru')
])
Ответить с цитированием
  #9 (permalink)  
Старый 16.02.2011, 01:27
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

blessmaster, не смешивайте php и javascript. indexOf никогда не возвращает логических значений.
Ответить с цитированием
  #10 (permalink)  
Старый 09.07.2011, 23:18
Интересующийся
Отправить личное сообщение для blessmaster Посмотреть профиль Найти все сообщения от blessmaster
 
Регистрация: 13.11.2010
Сообщений: 14

Сорри, действительно смешал, сейчас приходится сразу с четырьмя языками работать, периодически их стандарты путаю ))

Имелось в виду:

alert([
-1 < 'yandex.ru_'.indexOf('yandex.ru'),
-1 < 'andex.ru_'.indexOf('yandex.ru'),
-1 < '_yandex.ru_'.indexOf('yandex.ru')
])


Такая запись удобнее, если мы сразу хотим воспользоваться возвращённым значением:
if (-1 < pos = 'www.yandex.ru'.indexOf('yandex.ru')) {
  ...
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск