В двух предыдущих статьях мы с вами начали детальнее знакомиться со строковым типом данных. Мы научились получать доступ к конкретному символу строки, а также узнали, как изменить регистр символов строки. В этой статье мы с вами научимся получать часть строки и работать именно с ней.
Для начала мы познакомимся с методом indexOf(), который помогает проверить, есть ли определенный символ или же часть строки (подстрока) в строке. Данный метод принимает в себя один обязательный параметр – подстрока, которую необходимо найти. Второй параметр, необязательный, позволяет указать позицию в строке, с которой необходимо начать поиск. Пример:
1.var str = 'hello';2.console.log( str.indexOf('l') ); // 2В результате работы скрипта в консоль будет выведена двойка. Как вы помните, нумерация символов в строке начинается с нуля , соответственно, первая литера l находится на второй позиции в строке.
Давайте попробуем передать второй необязательный параметр, указав, что мы хотим начать поиск в строке с определенной позиции:
1.var str = 'hello';2.console.log( str.indexOf('l', 2) ); // 23.console.log( str.indexOf('l', 3) ); // 34.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.var str = 'hello';2.console.log( str.substr(2, 2) ); // ll3.console.log( str.substr(1) ); // ello4.console.log( str.substr(4) ); // oСледующий метод – substring(). Он очень похож на метод substr(). Отличие в том, что в методе substring() второй параметр это не количество символов, а конечная позиция в строке. Возьмем тот же пример и посмотрим на разницу:
1.var str = 'hello';2.console.log( str.substring(2, 2) ); // (пустая строка)3.console.log( str.substring(1) ); // ello4.console.log( str.substring(4) ); // oКак видим, первый вывод в консоль вернул пустую строку, поскольку начальная и конечная позиции получаемой подстроки – аналогичны.
Последний метод – slice() – фактически является аналогом substring() и на практике рекомендуется использовать именно его, т.е. метод slice().
А теперь давайте попробуем решить задачу из предыдущей статьи, где мы пытались сделать первую букву строки заглавной. Итак, решение будет таким:
1.var str = 'hello';2.console.log( str.charAt(0).toUpperCase() + str.substr(1) ); // HelloКак видим, мы взяли первый символ строки и привели его к верхнему регистру. После этого мы конкатенируем оставшуюся часть строки, кроме первого символа. Мы получили гораздо более элегантное решение, чем в предыдущей статье, где мы использовали цикл и условие.
Источник: http://webformyself.com/stroka-v-javascript-metody-dlya-raboty-so-strokami-v-javascript-chast-3/
