От автора: приветствую вас, друзья. В двух предыдущих статьях мы с вами начали детальнее знакомиться со строковым типом данных. Мы научились получать доступ к конкретному символу строки, а также узнали, как изменить регистр символов строки. В этой статье мы с вами научимся получать часть строки и работать именно с ней.
Для начала мы познакомимся с методом indexOf(), который помогает проверить, есть ли определенный символ или же часть строки (подстрока) в строке. Данный метод принимает в себя один обязательный параметр – подстрока, которую необходимо найти. Второй параметр, необязательный, позволяет указать позицию в строке, с которой необходимо начать поиск. Пример:
1 2 |
var str = 'hello'; console.log( str.indexOf('l') ); // 2 |
В результате работы скрипта в консоль будет выведена двойка. Как вы помните, нумерация символов в строке начинается с нуля , соответственно, первая литера l находится на второй позиции в строке.
Давайте попробуем передать второй необязательный параметр, указав, что мы хотим начать поиск в строке с определенной позиции:
1 2 3 4 |
var str = 'hello'; console.log( str.indexOf('l', 2) ); // 2 console.log( str.indexOf('l', 3) ); // 3 console.log( str.indexOf('l', 4) ); // -1 |
Первый вывод в консоль – первая найденная буква l, второй вывод в консоль – вторая буква, третий вывод вернул значение -1. Когда метод indexOf возвращает значение -1 – это означает, что искомая подстрока не найдена в строке.
Теперь давайте рассмотрим методы для получения подстроки. JavaScript предлагает сразу три метода для этой цели:
substr(start, [length])
substring(start, [end])
slice(start, [end])
Давайте посмотрим примеры работы с каждым из методов. Итак, метод substr(). Метод substr() возвращает часть строки, начиная с позиции start. Второй параметр – end – является не обязательным, если мы его не укажем, тогда будет взята вся оставшаяся часть строки, до конца. Если укажем, тогда будет взято указанное количество символов. Примеры:
1 2 3 4 |
var str = 'hello'; console.log( str.substr(2, 2) ); // ll console.log( str.substr(1) ); // ello console.log( str.substr(4) ); // o |
Следующий метод – substring(). Он очень похож на метод substr(). Отличие в том, что в методе substring() второй параметр это не количество символов, а конечная позиция в строке. Возьмем тот же пример и посмотрим на разницу:
1 2 3 4 |
var str = 'hello'; console.log( str.substring(2, 2) ); // (пустая строка) console.log( str.substring(1) ); // ello console.log( str.substring(4) ); // o |
Как видим, первый вывод в консоль вернул пустую строку, поскольку начальная и конечная позиции получаемой подстроки – аналогичны.
Последний метод – slice() – фактически является аналогом substring() и на практике рекомендуется использовать именно его, т.е. метод slice().
А теперь давайте попробуем решить задачу из предыдущей статьи, где мы пытались сделать первую букву строки заглавной. Итак, решение будет таким:
1 2 |
var str = 'hello'; console.log( str.charAt(0).toUpperCase() + str.substr(1) ); // Hello |
Как видим, мы взяли первый символ строки и привели его к верхнему регистру. После этого мы конкатенируем оставшуюся часть строки, кроме первого символа. Мы получили гораздо более элегантное решение, чем в предыдущей статье, где мы использовали цикл и условие.
На этом мы завершим данную статью. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!