Виталий Котов
Как работает метод search() - JavaScript
Метод search()
выполняет поиск соответствия между заданной строкой и регулярным выражением.
let sentence = "I love JavaScript.";
// шаблон, который ищет первую встречу символа в верхнем регистре
let regExp = /[A-Z]/;
// поиск соответствия между regExp и заданной строкой
let indexReg = sentence.search(regExp);
console.log(indexReg);
// Вывод в консоль: 0
Синтаксис search()
Синтаксис метода search()
следующий:
str.search(regexp);
Где str
- это строка.
Параметры search()
Метод search() принимает один параметр:
regExp
- объект регулярного выражения (Аргумент неявно преобразуется в
regExp
, если он не является объектомregExp
)
- объект регулярного выражения (Аргумент неявно преобразуется в
Возвращаемое значение search()
- Возвращает индекс первого совпадения между регулярным выражением и заданной строкой
- Возвращает -1, если совпадение не было найдено.
Примеры
Пример 1: Использование метода search()
// объявление строки
let string1 = "JavaScript JavaScript1";
// шаблон с «JavaScript», за которым следует цифра
let regExp = /(JavaScript)\d/;
// поиск совпадения между regExp и заданной строкой
let index = string1.search(regExp);
console.log(index);
Вывод в консоль:
11
В приведенном выше примере мы использовали метод search()
для поиска соответствия между регулярным выражением и заданной строкой.
Здесь regExp
указывает на шаблон, содержащий 'JavaScript'
, за которым следует цифра.
string1.search(regExp)
выполняет поиск и возвращает 11 - значение индекса найденного совпадения, т.е. "JavaScript1"
.
Пример 2: Передача нерегулярного выражения в search()
let string1 = "I love to code in JavaScript.";
// поиск слова "JavaScript" в заданной строке
let index = string1.search("code");
console.log(index);
Вывод в консоль:
10
В приведенном выше примере мы передали нерегулярное выражение 'code'
в метод search()
.
Метод неявно преобразует 'code'
в regExp
и выполняет поиск в заданной строке.
string1.search("code")
возвращает 10, что является индексом 'code'
.
Карта развития разработчика
Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile