Строка в JavaScript. Методы для работы со строками в JavaScript. Часть 3

Miercuri, 09 Noiembrie 2016 18:33

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

Для начала мы познакомимся с методом indexOf(), который помогает проверить, есть ли определенный символ или же часть строки (подстрока) в строке. Данный метод принимает в себя один обязательный параметр – подстрока, которую необходимо найти. Второй параметр, необязательный, позволяет указать позицию в строке, с которой необходимо начать поиск. Пример:

1.var str = 'hello';
2.console.log( str.indexOf('l') ); // 2
 

В результате работы скрипта в консоль будет выведена двойка. Как вы помните, нумерация символов в строке начинается с нуля , соответственно, первая литера l находится на второй позиции в строке.

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

1.var str = 'hello';
2.console.log( str.indexOf('l', 2) ); // 2
3.console.log( str.indexOf('l', 3) ); // 3
4.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) ); // ll
3.console.log( str.substr(1) ); // ello
4.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) ); // ello
4.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/