Spec-Zone.ru › JavaScript

String.prototype.slice()

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод slice() значений String извлекает часть этой строки и возвращает её как новую строку, не изменяя исходную строку.

Попробуйте

const str = "The quick brown fox jumps over the lazy dog.";

console.log(str.slice(31));
// Expected output: "the lazy dog."

console.log(str.slice(4, 19));
// Expected output: "quick brown fox"

console.log(str.slice(-4));
// Expected output: "dog."

console.log(str.slice(-9, -5));
// Expected output: "lazy"

Синтаксис

slice(indexStart)
slice(indexStart, indexEnd)

Параметры

indexStart
Индекс первого символа, который необходимо включить в возвращаемую подстроку.
indexEnd Необязательный
Индекс первого символа, который необходимо исключить из возвращаемой подстроки.

Возвращаемое значение

Новая строка, содержащая извлечённую часть строки.

Описание

slice() извлекает текст из одной строки и возвращает новую строку.

slice() извлекает до (но не включая) indexEnd. Например, str.slice(4, 8) извлекает символы с пятого по восьмой (символы с индексами 4, 5, 6 и 7):

              indexStart        indexEnd
                  ↓               ↓
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| T | h | e |   | m | i | r | r | o | r |

                  m   i   r   r
                 _______________
                      ↑
                    Result
  • Если indexStart >= str.length, возвращается пустая строка.
  • Если indexStart < 0, индекс отсчитывается с конца строки. Более формально, в этом случае подстрока начинается с max(indexStart + str.length, 0).
  • Если indexStart опущен, undefined, или не может быть преобразован в число, он трактуется как 0.
  • Если indexEnd опущен или undefined, или если indexEnd >= str.length, slice() извлекает до конца строки.
  • Если indexEnd < 0, индекс отсчитывается с конца строки. Более формально, в этом случае подстрока заканчивается на max(indexEnd + str.length, 0).
  • Если indexEnd <= indexStart после нормализации отрицательных значений (т.е., indexEnd представляет символ, который находится перед indexStart), возвращается пустая строка.

Примеры

Использование slice() для создания новой строки

Следующий пример использует slice() для создания новой строки.

const str1 = "The morning is upon us."; // The length of str1 is 23.
const str2 = str1.slice(1, 8);
const str3 = str1.slice(4, -2);
const str4 = str1.slice(12);
const str5 = str1.slice(30);
console.log(str2); // he morn
console.log(str3); // morning is upon u
console.log(str4); // is upon us.
console.log(str5); // ""

Использование slice() с отрицательными индексами

Следующий пример использует slice() с отрицательными индексами.

const str = "The morning is upon us.";
str.slice(-3); // 'us.'
str.slice(-3, -1); // 'us'
str.slice(0, -1); // 'The morning is upon us'
str.slice(4, -1); // 'morning is upon us'

Этот пример отсчитывает назад от конца строки на 11, чтобы найти начальный индекс, и вперед от начала строки на 16, чтобы найти конечный индекс.

console.log(str.slice(-11, 16)); // "is u"

Здесь он отсчитывает вперед от начала на 11, чтобы найти начальный индекс, и назад от конца на 7, чтобы найти конечный индекс.

console.log(str.slice(11, -7)); // " is u"

Эти аргументы отсчитывают назад от конца на 5, чтобы найти начальный индекс, и назад от конца на 1, чтобы найти конечный индекс.

console.log(str.slice(-5, -1)); // "n us"

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-string.prototype.slice

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
slice
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

Смотрите также

  • String.prototype.substr()
  • String.prototype.substring()
  • Array.prototype.slice()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API