String.replace no Javascript

Muita gente conhece o método String.replace do Javascript. De forma geral, ele é o método que permite substituir (jura? =) uma (sub)string por outra string.

É um método bastante usado em códigos Javascript, principalmente por possibilitar o uso de expressões regulares na hora de fazer as substituições. A forma mais comum de uso é algo do tipo:

"Javascript".replace( /[aeiou]/g, "" )

O trecho de código acima remove as vogais da string “Javascript” resultando na string “Jvscrpt”, bem simples.

Mas o que nem todo mundo sabe (e eu costumo não lembrar também) é que o segundo parâmetro do método replace pode ser uma função qualquer, que será executada recebendo como parâmetro a parte da string que “casou” com a expressão dada.

Desta forma você pode manipular como bem quiser a parte que “casou” da expressão regular. Isso é útil, por exemplo, se você quer procurar URLs numa determinada string e reduzir aquelas com mais de N caracteres.

Fiz um código que mostra o exemplo acima funcionando. Veja o exemplo aqui.

Nota 1: A expressão regular para “casar” URLs está bem simples e contida para o exemplo… não “casaria” todos os formatos possíveis de URL.

Nota 2: O método substr no IE não funciona como esperado quando se tem parâmetros negativos. Que azar… :D

1 comentário »

  1. Rodrigo disse,

    09/11/2009 @ 23:16

    Muito boa dica. Uma solução para o IE no caso de parâmetros negativos e trabalhar com o length mesmo, verificando o tamanho da string e achando o ponto ideal para iniciar a segunda parte da abreviação da URL.

    []‘s

Deixe seu comentário

* campos obrigatórios