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…

=/