Qual a diferença entre as funções substr e substring no Javascript?
Boa noite computêros, hoje pela manhã um camarada do serviço (Aquele que fez a função de request/get querystring com Javascript), me disse mais ou menos assim:
“Lucas, por quê você num posta lá no blog a diferença entre as funções substr e substring no Javascript?”
Bom, eu tentei… espero que ajude…
Pra quem não conhece, ou nunca usou estas funções, nada de pânico… já já vocês vão entender…
Sintaxe:
string.substr(posicao_inical,qtde_caracteres)
string.substring(posicao_inicial,posicao_parada)
As duas funções possuem o primeiro parâmetro como obrigatório e o segundo opcional, caso o segundo parâmetro seja omitido, ela automaticamente interpretará como o tamanho total da string.
Um ponto importante a ser observado é que se o segundo parâmetro for omitido as funções têm o resultado idêntico.
Exemplo:
string.substr(7)
string.substr(7,string.length)
string.substring(7)
string.substring(7,string.length)
Quando utilizamos o segundo parâmetro que as funções tratam de modo diferente…
string.substr(7,10) —-> isso quer dizer, avance até a posição 7 da string e a partir dela selecione 10 caracteres
string.substring(7,10) —-> isso quer dizer, avance até a posição 7 da string e selecione os caracteres até a posição 10
Um detalhe importante na função substring é caso o primeiro parâmetro seja maior que o segundo, ela funcionará da mesma forma que se os parâmetros estivessem invertidos
string.substring(7,3) = string.substring(3,7) —-> a mesma idéia, avance até a posição 3 da string e selecione os caracteres até a posição 7
Exemplos práticos:
str = "http://blog.computero.com.br"
//Somente um parâmetro
alert(
"str.substr(7): " + str.substr(7) + "
" +
"str.substr(7,str.length): " + str.substr(7,str.length) + "
" +
"str.substring(7): " + str.substring(7) + "
" +
"str.substring(7,str.length): " + str.substring(7,str.length)
)
//Dois parâmetros
alert(
"str.substr(7,10): " + str.substr(7,10) + "
" +
"str.substring(7,10): " + str.substring(7,10) + "
"
)
//Parâmetro maior
alert(
"str.substring(7,3): " + str.substring(7,3) + "
" +
"str.substring(3,7): " + str.substring(3,7) + "
"
)
É isso aí computêros, espero que seja útil…
=]
Observação 1: Todo o código foi criado utilizando o editor on-line Bespin
Observação 2: Todo o código foi criado enquanto eu esperava a minha função de gerar números aleatórios gerar 1200000, mas até agora nada…
=/
Olha só que interessante isso que você disse, e são coisas que vc batendo o olho, ainda mais naquelas IDEs que completam, você nem repara que substr e substring são diferentes….na correria vai qualquer um e depois nao funfa você pensa em tudo menos isso… que diferença nao faz um ing num palavra hein?! kkkkk
p.s.
Observação 2: Todo o código foi criado enquanto eu esperava a minha função de gerar números aleatórios gerar 1200000, mas até agora nada…
Eu acho que se você melhorar seu algoritmo ajuda! =D