Этот метод удобен, когда нужно проверить, есть ли совпадения с регулярным выражением (аналогично RegExp#test).
Чтобы получить больше информации, используйте более медленный метод match (или родственный ему метод RegExp#exec).
Пример: Проверка на совпадение
function testinput(re, str){
if (str.search(re) != -1)
return true
else
return false
}
alert(testinput(/something/, "somestr")) // false
Объясните, почему проверяется, не равно ли -1? И, по-моему, функция имела бы более лаконичный вид, выгляди так:
Типа память о кодах возврата в Unix
Типа возвращается позиция вхождения.
Тогда уж сразу так:
А что в этом лаконичного? Сам результат сравнения имеет булевский тип, к чему ваш тернарный оператор?
"function testinput(re, str){return str.search(re) != -1 ? true : false}"
еще проще:
function testinput(re, str){return str.search(re) != -1;}
Тогда уж лучше вот так:
тогда уж:
но тогда смысл в функции исчезает, т.к. она вырождается.
Тогда уж лучше вот так:
Да, да, а еще лаконичнее:
function testinput(re, str){return str.search(re) != -1}
Это все таки руководство, тут нужна не лаконичность, а наглядность.
Что ж за -1 возвращает .search когда не находит совпадения с регулярным выражением?
«…аналогично RegExp#test»
Тип возвращаемого — разный.
Спасибо.
С уважением, Цыганков Артём.
Как в javascript сохранить в файл, например в формате ".txt", содержимое текстового поля? Меня интересует конкретно код.
Никак. Это клиентский язык
В браузере никак, но можно использовать Node.js, хотя это выходит за рамки того JS, который тут обычно рассматривается. Если код очень нужен, то могу написать.
сегодня выловил перл от одного программиста:
кукиса не была объявлена, в итоге имеем "недопроверку" входных параметров
TypeError: cook is null (ожидается type String)
В итоге я вообще запретил юзать новичкам в отделе search, только test
надеюсь, что обойдется без:
Рассмешил:))
Правильно регулярками их дави:)))
А ещё заставь кикнуть либу кукей. Пусть сидят голову качают:)
Хотя библиотека кукей действительно хороша:)
Здравствуйте. Помогите пожалуйста разобраться. Как в методе 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();
Заранее благодарю.