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

Поиск в строке 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-разработке? Переходите по ссылке ниже:

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

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

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

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