Поиск в строке другой подстроки средствами 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')) { ... } |
Цитата:
странно как-то сравниваешь, наоборот :) |
Цитата:
|
|
Как удалить подстроку в строке
Здравствуйте. Помогите пожалуйста решить проблему:
есть 3 блока <div id="text"> {galery}news1{/galery}Мы по-прежнему поддерживаем контакт» по этому вопросу с российскими властями, отметила представитель внешнеполитического ведомства США. «Это, безусловно, приоритетный вопрос, и мы продолжаем находиться в контакте на надлежащем уровне», — сказала Псаки. </div> <div id="text"> {galery}news2{/galery}Ее попросили прокомментировать предположение, что Сноуден, ранее подавший просьбу о предоставлении ему временного убежища в России, может уже в среду покинуть транзитную зону московского аэропорта Шереметьево, в которой он находится с 23 июня. «У меня нет независимого подтверждения насчет того, какие действия по этому делу может предпринять или не предпринять правительство России», — ответила Псаки. </div> <div id="text"> {galery}news3{/galery}По ее словам, американская администрация «продолжает призывать правительство России поступить правильным образом и вернуть Сноудена в Соединенные Штаты». «Насколько я понимаю, опираясь на последнюю имеющуюся информацию, он продолжает находиться в транзитной зоне аэропорта», — добавила Псаки. </div> Мне нужно удалить подстроку {galery}news1{/galery} в каждом блоке. Подскажите пожалуйста как это сделать? Пробовал так: var textZam = $('#text').html(); var regV = /\{galery\}news\d{0,}\{\/galery\}/g; var result = textZam.replace(regV, ''); $('#text').text(result); но это не то что нужно. |
Часовой пояс GMT +3, время: 21:53. |