Этот метод удобен, когда нужно проверить, есть ли совпадения с регулярным выражением (аналогично 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? И, по-моему, функция имела бы более лаконичный вид, выгляди так:
function testinput(re, str){return str.search(re) != -1 ? true : false}Типа память о кодах возврата в Unix
Типа возвращается позиция вхождения.
Тогда уж сразу так:
function testinput(re, str){return (str.search(re) != -1);}А что в этом лаконичного? Сам результат сравнения имеет булевский тип, к чему ваш тернарный оператор?
function testinput(re, str){return str.search(re) !== -1;}"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;}тогда уж:
function testinput(re, str){return re.test(str);}но тогда смысл в функции исчезает, т.к. она вырождается.
Тогда уж лучше вот так:
function testinput(re, str){return ~str.search(re);}Да, да, а еще лаконичнее:
function testinput(re, str){return str.search(re) != -1}
Это все таки руководство, тут нужна не лаконичность, а наглядность.
Что ж за -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»
Тип возвращаемого — разный.
Спасибо.
С уважением, Цыганков Артём.
Как в javascript сохранить в файл, например в формате ".txt", содержимое текстового поля? Меня интересует конкретно код.
Никак. Это клиентский язык
В браузере никак, но можно использовать Node.js, хотя это выходит за рамки того JS, который тут обычно рассматривается. Если код очень нужен, то могу написать.
сегодня выловил перл от одного программиста:
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'))){ ... }надеюсь, что обойдется без:
Рассмешил:))
Правильно регулярками их дави:)))
А ещё заставь кикнуть либу кукей. Пусть сидят голову качают:)
Хотя библиотека кукей действительно хороша:)
Здравствуйте. Помогите пожалуйста разобраться. Как в методе 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();
Заранее благодарю.