Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
String.prototype.substring()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
Resumo
O métodosubstring() retorna a parte da string entre os índices inicial e final, ou até o final da string.
In this article
Sintaxe
str.substring(indexStart[, indexEnd])
Parâmetros
indexStartUm inteiro entre
0e o comprimento da string (str.length), especificando a posição na string do primeiro caractere a ser incluído na substring retornada.indexEndOpcional. Um inteiro entre
0e o comprimento da string (str.length), especificando a posição na string do primeiro caractere anão ser mais incluído na substring retornada.
Valor retornado
Uma nova string contendo a parte especificada da string fornecida.
Descrição
substring() extrai caracteres desdeindexStart até, masnãoincluindo,indexEnd. Em particular:
- Se
indexStarté igual aindexEnd,substring()retorna uma string vazia. - Se
indexEndfor omitido,substring()extrai caracteres até o fim da string. - Se qualquer argumento for menor que
0ouNaN, ele será tratado como0. - Se qualquer argumento for maior que
stringName.length, ele será tratado como se fossestringName.length
SeindexStart for maior queindexEnd, então o efeito dosubstring() é como se os dois argumentos estivessem trocados, por exemplo,str.substring(1, 0) == str.substring(0, 1).
Exemplos
>Usandosubstring()
O seguinte exemplo usasubstring() para mostrar caracteres da palavra 'Mozilla':
var anyString = "Mozilla";// Mostra "Moz"console.log(anyString.substring(0, 3));console.log(anyString.substring(3, 0));// Mostra "lla"console.log(anyString.substring(4, 7));console.log(anyString.substring(7, 4));// Mostra "Mozill"console.log(anyString.substring(0, 6));// Mostra "Mozilla"console.log(anyString.substring(0, 7));console.log(anyString.substring(0, 10));Usandosubstring() comlength
O exemplo a seguir usa o métodosubstring() e a propriedadelength para extrair os últimos caracteres de uma string específica. Este método pode ser mais fácil de lembrar, visto que você não precisa saber os índices inicial e final como faria nos exemplos acima.
// Mostra 'illa', os últimos 4 caractereslet anyString = "Mozilla";let anyString4 = anyString.substring(anyString.length - 4);console.log(anyString4);// Mostra 'zilla', os últimos 5 caractereslet anyString = "Mozilla";let anyString5 = anyString.substring(anyString.length - 5);console.log(anyString5);A diferença entresubstring() esubstr()
Há uma diferença sutil entre os métodossubstring() esubstr(), então você deve ter cuidado para não confundi-los.
Os argumentos desubstring() representam os índices inicial e final, enquanto os argumentos desubstr() representam o índice inicial e o número de caracteres a serem incluídos na string retornada.
Além disso,substr() é considerado umrecurso legacy no ECMAScript e pode ser removido em versões futuras, portanto, é melhor evitar usá-lo, se possível.
let text = "Mozilla";console.log(text.substring(2, 5)); // retorna "zil"console.log(text.substr(2, 3)); // retorna "zil"Diferenças entresubstring() eslice()
Os métodossubstring() eslice() são quase idênticos, mas existem algumas diferenças sutis entre os dois, especialmente na forma como os argumentos negativos são tratados.
O métodosubstring() troca seus dois argumentos seindexStart for maior queindexEnd, o que significa que uma string ainda será retornada. O métodoslice() retorna uma string vazia caso o mesmo ocorra.
let text = "Mozilla";console.log(text.substring(5, 2)); // retorna "zil"console.log(text.slice(5, 2)); // retorna ""Se um ou ambos os argumentos forem negativos ouNaN, o métodosubstring() os tratará como se fossem0.
console.log(text.substring(-5, 2)); // retorna "Mo"console.log(text.substring(-5, -2)); // retorna ""slice() também trata os argumentosNaN como0, mas quando recebe valores negativos, ele conta regressivamente a partir do final da string para encontrar os índices.
console.log(text.slice(-5, 2)); // retorna ""console.log(text.slice(-5, -2)); // retorna "zil"Veja a páginaslice() para mais exemplos com números negativos.
Substituindo umasubstring() com uma string
O seguinte exemplo substitui uma substring dentro de uma string. Ela irá substituir ambos caracteres e substrings individualmente. A função invocada na linha final do exemplo altera a string "Brave New World" para "Brave New Web".
function replaceString(oldS, newS, fullS) { // Substitui oldS por newS na string fullS for (var i = 0; i < fullS.length; i++) { if (fullS.substring(i, i + oldS.length) == oldS) { fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length); } } return fullS;}replaceString("World", "Web", "Brave New World");Note que isto pode resultar em um loop infinito seoldS for um substring denewS — por exemplo, se você tentou substituir "World" com "OtherWorld". O melhor método para substituir strings é o seguinte:
function replaceString(oldS, newS, fullS) { return fullS.split(oldS).join(newS);}O código acima serve como um exemplo para operações com substring. Se você precisa substituir substrings, na maioria das vezes você vai querer usarString.prototype.replace().
Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.substring> |