String.prototype.slice()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Sumário
O método slice()
extrai uma parte de uma string e a retorna como uma nova string, sem modificar a string original.
Experimente
Sintaxe
str.slice(startIndex[, endIndex])
Paramêtros
startIndex
-
É o índice, de base zero, onde se inicia a extração. Se for um número negativo, será o mesmo que executar
str.length + startIndex
(por exemplo, sestartIndex
for-3
, será o mesmo que executarstr.length - 3
).jsconst nome = "Ricardo"; console.log(nome.slice(-3)); // retorna 'rdo'
Se
startIndex
for maior ou igual astr.length
, uma string vazia será retornada.jsconst nome = "Ricardo"; console.log(nome.slice(7)); // retorna <empty string>'
endIndex
-
Opcional. É o índice, de base zero, onde termina a extração. O caractere que possuir este índice não será incluso.
Se omitido ou possuir valor de
undefined
, ou for maior questr.length
,slice()
extrairá até o fim da string.jsconst nome = "Ricardo"; // omitindo fimSlice console.log(nome.slice(0)); // retorna 'Ricardo' // undefined fimSlice let i; // variável criada sem atribuir valor console.log(nome.slice(0, i)); // retorna 'Ricardo' // passando número maior que o tamanho da string console.log(nome.slice(0, 7)); // retorna 'Ricardo'
Se negativo, é o mesmo que executar
str.length + endIndex
ondestr.length
é o tamanho da string (por exemplo, seendIndex
é-3
, é como executarstr.length - 3
).jsconst nome = "Ricardo"; console.log(nome.slice(0, -3)); // retorna 'Rica'
Se for um valor diferente de indefinido e, ao mesmo tempo não for um número, uma string vazia será retornada
jsconst nome = "Ricardo"; let i; // variável criada sem valor atribuído // passando algum valor ≠ de undefined e ≠ de número console.log(nome.slice(0, NaN)); // retorna <empty string> console.log(nome.slice(2, false)); // retorna <empty string> console.log(nome.slice(5, i)); // retorna 'Ricardo'
Se
endIndex
for definido estartIndex
for negativo,endIndex
deve ser negativo também, do contrário uma string vazia é retornada.jsconst nome = "Ricardo"; console.log(nome.slice(-3, 0)); // retorna <empty string>
Caso
endIndex
seja definido estartIndex
eendIndex
sejam ambos positivos ou negativos,endIndex
deve ser maior questartIndex
, do contrário uma string vazia é retornada.jsconst nome = "Ricado"; console.log(nome.slice(-1, -3)); // retorna <empty string> console.log(nome.slice(3, 1)); // retorna <empty string>
Retorno
Uma nova string contento a porção extraída da string.
Descrição
slice()
extrai um texto de uma string e retorna uma nova string. Modificações realizadas no texto de uma string não afetam a outra string.
slice()
extrai até, mas não inclue endIndex
.
str.slice(1, 4)
extrai a partir do segundo caractere até o quarto caractere (ou seja, os caracteres de índices 1
, 2
, e 3
).
Por exemplo, str.slice(2, -1)
extrai a partir do terceiro carácter até o penúltimo caractere da string.
const nome = "Ricardo";
console.log(nome.slice(2, -1)); // retorna 'card'
Exemplos
Exemplo: Usando slice()
para criar uma nova string
O exemplo a seguir usa slice()
para criar uma nova string.
var str1 = "A manhã está sobre nós", // o tamanho de str1 é 22
str2 = str1.slice(3, 10),
str3 = str1.slice(2, -2),
str4 = str1.slice(13),
str5 = str1.slice(22);
console.log(str2); // retorna 'anhã es'
console.log(str3); // retorna 'manhã está sobre n'
console.log(str4); // retorna 'sobre nós'
console.log(str5); // retorna <empty string>
Exemplo: Usando slice()
com índices negativos
O exemplo a seguir usa o slice()
com índices negativos.
var str = "A manhã está sobre nós";
str.slice(-3); // retorna 'nós'
str.slice(-3, -1); // retorna 'nó'
str.slice(0, -1); // retorna 'A manhã está sobre nó'
O exemplo abaixo percorre o índice no sentido anti-horário (de trás para frente) até chegar ao índice 11 da string, que será o início. Logo após, percorre o índice da string no sentido horário até chegar ao índice 16 da string, que será o fim.
console.log(str.slice(-11, 16)); // retorna "á sob"
O exemplo abaixo percorre o índice no sentido horário até chegar ao índice 10 da string, que será o início. Logo após, percorre o índice da string no sentido anti-horário até chegar ao índice 7 da string, que será o fim.
console.log(str.slice(10, -7)); // retorna "tá so"
O exemplo abaixo percorre o índice no sentido anti-horário até chegar ao índice 5 da string, que será o início. Logo após, percorre o índice da string novamente no sentido anti-horário até chegar ao índice 1 da string, que será o fim.
console.log(str.slice(-5, -1)); // retorna "e nó"
Especificações
Specification |
---|
ECMAScript Language Specification # sec-string.prototype.slice |
Compatibilidade com navegadores
BCD tables only load in the browser