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"
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
Смотрите также
© 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