Поиск в строке JavaScript. Работа с подстрокой | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Backend-разработчик на PHP Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Symfony Framework Unity Game Developer. Basic JavaScript Developer. Professional Android Developer. Basic JavaScript Developer. Basic Java Developer. Professional Highload Architect Reverse-Engineering. Professional Java Developer. Basic Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect MS SQL Server Developer Разработчик программных роботов (RPA) на базе UiPath и PIX Разработчик голосовых ассистентов и чат-ботов Administrator Linux. Advanced Infrastructure as a code Супер-практикум по использованию и настройке GIT Administrator Linux.Basic Экспресс-курс «IaC Ansible» Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Основы Windows Server
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Поиск в строке JavaScript. Работа с подстрокой

В предыдущей статье мы начали тему работы со строками в JavaScript. В этом материале вы узнаете, как выполнять поиск в строке, как работать с подстрокой, как извлекать часть строки и т. д.

Поиск строки в строке в JavaScript

С помощью метода IndexOf() можно вернуть индекс первого вхождения заданного текста в строку:

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");

В нашем случае происходит подсчёт позиции с нуля. При этом: 1) 0 — первая позиция в строке, 2) 1 — вторая, 3) 2 — третья...

Идём дальше. Функция LastIndexOf() в JavaScript вернёт индекс последнего вхождения:

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");

Оба этих метода принимают 2-й параметр в виде начальной позиции для поиска:

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate",15);

Стоит упомянуть и функцию Search() — она выполняет поиск строки для заданного значения, возвращая позицию совпадения:

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");

Метод slice () в JavaScript

Функция slice() извлечёт часть строки и вернёт извлечённую часть в новой строке. Метод способен принимать два параметра: начальный индекс (это положение) и конечный индекс (речь идёт о позиции).

К примеру, давайте нарежем часть строки из позиции 7 в положение 13:

var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);

В нашем случае результатом будет:

Banana

Если параметр будет иметь отрицательное значение, то позиция будет учитываться с конца строки. Например:

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);

Результат будет тот же.

Кстати, если 2-й параметр опустить, то метод сделает срез оставшейся части строки:

var res = str.slice(7);

Результатом будет:

Banana, Kiwi

То же самое получим, выполнив срез с конца:

var res = str.slice(-12);

Остаётся лишь добавить, что отрицательные позиции не функционируют в Internet Explorer 8 и других, более ранних версиях.

Метод подстроки в JavaScript

Подстрока в JavaScript аналогична срезу с той разницей, что подстрока не способна принимать отрицательные индексы:

var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);

В качестве результата опять получим «Banana».

Если же мы опустим 2-й параметр, то подстрока разрежет оставшуюся часть строки.

Метод substr () в JavaScript

Строковый метод substr() похож на slice() с той разницей, что 2-й параметр показывает длину извлечённой детали.

var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);

Результат: Banana.

Мы можем опустить 2-й параметр — тогда строковый метод substr() разрежет оставшуюся часть строки.

var str = "Apple, Banana, Kiwi";
var res = str.substr(7);

Получим: Banana, Kiwi.

Если 1-й параметр будет отрицательным, позиция будет рассчитываться с конца строки.

var str = "Apple, Banana, Kiwi";
var res = str.substr(-4);

Результат: Kiwi.

Меняем содержимое строки в JavaScript

Строковый метод Replace() позволит заменить указанное значение иным значением в строке:

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3Schools");

Результат: Please visit W3Schools!

Обратите внимание, что метод Replace() не изменит строку, в которой вызывается, а возвратит новую.

В следующем примере функция Replace() меняет лишь первое совпадение:

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3Schools");

Итог: Please visit W3Schools and Microsoft!

Кстати, по умолчанию Replace() учитывает регистр. Написав MICROSOFT, мы увидим, что функция работать не будет: Пример

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3Schools");

Но мы можем заменить регистр без его учёта, если воспользуемся регулярным выражением с пометкой " i ":

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3Schools");

Результат: Please visit W3Schools!

Здесь стоит заметить, что регулярные выражения надо писать без кавычек.

Если желаете заменить все совпадения, воспользуйтесь регулярным выражением с флагом /g:

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3Schools");

Тут получим следующее: Please visit W3Schools and W3Schools!

Извлекаем строковые символы в JavaScript

Есть 2 безопасных строковых функции для извлечения строковых символов: • charCodeAt (позиция); • charAt (позиция).

Функция charAt() возвратит символ по указанному нами индексу (позиции) в строке:

var str = "HELLO WORLD";
str.charAt(0);         

Вывод:

H

Что касается метода charCodeAt(), то он вернёт Юникод символа по указанному нами индексу:

var str = "HELLO WORLD";

str.charCodeAt(0);         // вернёт 72

Что ж, на этом всё, удачного вам кодинга!

Источник

Интересует профессиональный курс по JavaScript-разработке? Переходите по ссылке ниже:

JS_970x90-20219-c6e520.jpg

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться