Поиск в строке другой подстроки средствами JS
Есть ли какая-то ф-я поиска в строке другой подстроки?
как это можно реализовать. Например мне нужно знать есть ли в строке http://yandex.ru/yandsearch?text=wwww&lr=187 слово yandex.ru Заранее спасибо. |
var str = 'http://www.yandex.ru';
if(str.indexOf('yandex.ru') + 1) {
...
}
|
Octane, а зачем здесь +1 в условии? Просто не пойму, а хотелось бы понять.
|
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 ) итд) |
Можно использовать регулярные выражения
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("Совпадение не найдено")
}
|
Цитата:
|
Кагбэ
if(false !== str.indexOf('yandex.ru')) {
...
}
или
var pos = str.indexOf('yandex.ru');
if(false !== pos) {
...
}
если нужна позиция вхождения |
Щито? 0_о
alert([
false !== 'yandex.ru_'.indexOf('yandex.ru'),
false !== 'andex.ru_'.indexOf('yandex.ru'),
false !== '_yandex.ru_'.indexOf('yandex.ru')
])
|
blessmaster, не смешивайте php и javascript. indexOf никогда не возвращает логических значений.
|
Сорри, действительно смешал, сейчас приходится сразу с четырьмя языками работать, периодически их стандарты путаю ))
Имелось в виду:
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')) {
...
}
|
| Часовой пояс GMT +3, время: 22:54. |