JavaScript: slice и другие методы для работы с подстроками

JavaScript предлагает три способа выборки подстроки из существующей строки: slice, substring и substr. Способ slice более гибкий, чем substring, а использование substr не рекомендуется, так как этот способ не стандартизирован в ECMAScript. Тем не менее, в данной статье мы рассмотрим и продемонстрируем все три способа, начиная с JS slice.

slice

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

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

var str = 'невероятно';// передаём индекс 2 в способ slice. нумерация начинается с нуля.var str2 = str.slice(2);console.log(str2); // вероятно

Выбранная подстрока не содержит индекс, который указан в конечном аргументе:

var str = 'невероятно';var str3 = str.slice(2, 4);console.log(str3); // ве

Как видно из примера, приведенного выше, способ slice возвращает символ, указанный как индекс в первом аргументе, но не возвращает индекс, указанный во втором.

Оба аргумента могут использовать отрицательные числа. В таких случаях они указывают начальный и конечный индекс, отсчитывая обратно с конца строки. В примере, приведенном ниже, мы выберем четыре последних символа, передав slice значение -4:

var str = 'невероятно';var str4 = str.slice(-4);console.log(str4); // ятно

В следующем примере мы передадим JS slice string аргументы -4 и -2. Таким образом, мы начнём выборку подстроки за четыре символа до конца строки и закончим за два символа до конца:

var str = 'невероятно';var str5 = str.slice(-4, -2);console.log(str5); // ят

substring

Способ substring похож на slice тем, что мы указываем начальный и конечный индекс для выборки. Но в отличие от slice, мы не можем использовать отрицательные числа.

В следующем примере мы покажем, как достичь тех же самых результатов, используя substring:

var str = 'невероятно';var str2 = str.substring(2);console.log( str2); // вероятноvar str3 = str.substring(2, 4);console.log( str3); // ве// используем str.length для указания индекса, считая с конца строкиvar str4 = str.substring( str.length -4);console.log( str4); // ятноvar str5 = str.substring( str.length -4, str.length -2);console.log( str5); // ят

Мы получили те же самые результаты, используя способ substring. Но из-за того, что отрицательные числа не поддерживаются, его довольно неудобно использовать, если необходимо указать индекс, начиная с конца строки.

substr

Способ substr похож на substring и JS slice тем, что выбирает часть строки и возвращает новую. Но вместо того, чтобы указывать начало и конец выбранного отрывка, мы указываем начало отрывка и длину возвращаемой подстроки.

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

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

Следующий пример демонстрирует использование способа substr для достижения результатов, аналогичных применению способов slice и substring:

var str = 'невероятно';var str2 = str.substr(2);console.log(str2); // вероятно// аргументы: начальный индекс, длинаvar str3 = str.substr(2, 2);console.log(str3); // ве// отсчёт с конца строкиvar str4 = str.substr(-4);console.log(str4); // ятноvar str5 = str.substr(-4, 2);console.log(str5); // ят

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *