Javascript.RU

search

Синтаксис

idx = str.search(regexp)

Аргументы

regexp
объект типа RegExp или строка

Описание, примеры

Этот метод удобен, когда нужно проверить, есть ли совпадения с регулярным выражением (аналогично RegExp#test).

Чтобы получить больше информации, используйте более медленный метод match (или родственный ему метод RegExp#exec).

Пример: Проверка на совпадение
function testinput(re, str){
   if (str.search(re) != -1)
      return true
   else
      return false
}
alert(testinput(/something/, "somestr")) // false

Автор: trikadin, дата: 30 апреля, 2010 - 15:52
#permalink

Объясните, почему проверяется, не равно ли -1? И, по-моему, функция имела бы более лаконичный вид, выгляди так:

function testinput(re, str){return str.search(re) != -1 ? true : false}

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

Типа память о кодах возврата в Unix


Автор: e1f, дата: 21 июля, 2010 - 17:43
#permalink

Типа возвращается позиция вхождения.


Автор: Ney (не зарегистрирован), дата: 8 ноября, 2010 - 09:39
#permalink

Тогда уж сразу так:

function testinput(re, str){return (str.search(re) != -1);}

Автор: Konstantin Nekrasov (не зарегистрирован), дата: 13 января, 2012 - 10:39
#permalink

А что в этом лаконичного? Сам результат сравнения имеет булевский тип, к чему ваш тернарный оператор?

function testinput(re, str){return str.search(re) !== -1;}

Автор: Гость (не зарегистрирован), дата: 4 сентября, 2012 - 15:31
#permalink

"function testinput(re, str){return str.search(re) != -1 ? true : false}"

еще проще:

function testinput(re, str){return str.search(re) != -1;}


Автор: guitarman (не зарегистрирован), дата: 8 августа, 2013 - 10:25
#permalink

Тогда уж лучше вот так:

function testinput(re, str){return str.search(re) != -1;}

Автор: Norm Iridium, дата: 9 января, 2014 - 14:11
#permalink

тогда уж:

function testinput(re, str){return re.test(str);}

но тогда смысл в функции исчезает, т.к. она вырождается.


Автор: LossBull (не зарегистрирован), дата: 16 августа, 2015 - 15:54
#permalink

Тогда уж лучше вот так:

function testinput(re, str){return ~str.search(re);}

Автор: Гость (не зарегистрирован), дата: 7 июня, 2014 - 07:59
#permalink

Да, да, а еще лаконичнее:
function testinput(re, str){return str.search(re) != -1}

Это все таки руководство, тут нужна не лаконичность, а наглядность.


Автор: ArtTs (не зарегистрирован), дата: 24 февраля, 2011 - 12:10
#permalink

Что ж за -1 возвращает .search когда не находит совпадения с регулярным выражением?

var InStrng = '00:0';
var RgXp = /^\d?\d:\d{2}$/;
var ResChkSearch; // результат проверки совпадения с регулярным выражением методом .search

var InStrngSearch = InStrng.search(RgXp); // -1
var InStrngSearchParseInt = parseInt(InStrngSearch); // -1

ResChkSearch = (-1 != -1) ? true : false; // false
ResChkSearch = (InStrngSearch != -1) ? true : false; // true !? (мне так выдаёт)
ResChkSearch = (InStrngSearchParseInt != -1) ? true : false; // false

«…аналогично RegExp#test»

var InStrngTest = RgXp.test(InStrng); // false. Сразу без всякого ?: или if-else

Тип возвращаемого — разный.
Спасибо.
С уважением, Цыганков Артём.


Автор: Мавио Кандис (не зарегистрирован), дата: 18 сентября, 2011 - 21:10
#permalink

Как в javascript сохранить в файл, например в формате ".txt", содержимое текстового поля? Меня интересует конкретно код.


Автор: Гость (не зарегистрирован), дата: 5 января, 2012 - 17:58
#permalink

Никак. Это клиентский язык


Автор: Гость (не зарегистрирован), дата: 6 января, 2012 - 18:10
#permalink

В браузере никак, но можно использовать Node.js, хотя это выходит за рамки того JS, который тут обычно рассматривается. Если код очень нужен, то могу написать.


Автор: Norm Iridium, дата: 9 января, 2014 - 14:06
#permalink

сегодня выловил перл от одного программиста:

cook = $.cookie('primer');
if (cook.search('nidle') >=0){
   ...
 };

кукиса не была объявлена, в итоге имеем "недопроверку" входных параметров

cook = null;
if (cook.search('nidle') >=0){
   ...
 };

TypeError: cook is null (ожидается type String)

В итоге я вообще запретил юзать новичкам в отделе search, только test

if(/nidle/i.test($.cookie('primer'))){
  ...
}

надеюсь, что обойдется без:

/undefined/.test() //true

Автор: Гость (не зарегистрирован), дата: 6 мая, 2014 - 12:47
#permalink

Рассмешил:))


Автор: Гость (не зарегистрирован), дата: 6 мая, 2014 - 12:48
#permalink

Правильно регулярками их дави:)))
А ещё заставь кикнуть либу кукей. Пусть сидят голову качают:)
Хотя библиотека кукей действительно хороша:)


Автор: Michael911 (не зарегистрирован), дата: 2 июня, 2016 - 12:20
#permalink

Здравствуйте. Помогите пожалуйста разобраться. Как в методе search указать несколько выражений для поиска. Можно ли в строке 04 var val = str.search(...) задать несколько параметров поиска, т.к. в данном случае ищется только первое слово 'sex', а остальные 'porno' и 'xxx' - нет. Или необходимо для каждого слова создавать отдельную переменную и свой search?
function checkWord(){
var text = prompt('Введите строку','');
var str= text.toLowerCase();
var val = str.search('sex' || 'porno' || 'xxx');
if (val != -1) {
alert('Ok');
} else {
alert('No');
}
}
checkWord();

Заранее благодарю.


 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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