--- title: String.prototype.slice() slug: Web/JavaScript/Reference/Global_Objects/String/slice tags: - JavaScript - Prototipo - Reference - String - metodo translation_of: Web/JavaScript/Reference/Global_Objects/String/slice ---
O método slice()
extrai uma parte de uma string e a retorna como uma nova string, sem modificar a string original.
str.slice(startIndex[, endIndex])
startIndex
str.length + startIndex
(por exemplo, se startIndex
for -3
, será o mesmo que executar str.length - 3
).const nome = 'Ricardo'; console.log(nome.slice(-3)); // retorna 'rdo'
startIndex
for maior ou igual a str.length
, uma string vazia será retornada.const nome = 'Ricardo'; console.log(nome.slice(7)); // retorna <empty string>'
endIndex
undefined
, ou for maior que str.length
, slice()
extrairá até o fim da string.const 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'
str.length + endIndex
onde str.length
é o tamanho da string (por exemplo, se endIndex
é -3
, é como executar str.length - 3
).const nome = 'Ricardo'; console.log(nome.slice(0, -3)); // retorna 'Rica'
const 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 e startIndex
for negativo, endIndex
deve ser negativo também, do contrário uma string vazia é retornada.
const nome = 'Ricardo'; console.log(nome.slice(-3, 0)); // retorna <empty string>
Caso endIndex
seja definido e startIndex
e endIndex
sejam ambos positivos ou negativos, endIndex
deve ser maior que startIndex
, do contrário uma string vazia é retornada.
const nome = 'Ricado'; console.log(nome.slice(-1, -3)); // retorna <empty string> console.log(nome.slice(3, 1)); // retorna <empty string>
Uma nova string contento a porção extraída da string.
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'
slice()
para criar uma nova stringO 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>
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ó"
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition. | Standard | Initial definition. Implemented in JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.5.4.13', 'String.prototype.slice')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-string.prototype.slice', 'String.prototype.slice')}} | {{Spec2('ES6')}} |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |