Posted by: Rogério Alencar Lino Filho on: 23 Julho, 2007
Creio que algumas pessoas já se depararam com a situação de ter que substituir um caracter ou uma string num texto. Tudo resolveria casa o replace() não substituisse só o primeiro token encontrado.
Por isso temos que criar nossa própria função para sair buscando os resultados repitidos. Abaixo segue uma simples função que realiza tal instrução:
function replaceAll(string, token, newtoken) {
while (string.indexOf(token) != -1) {
string = string.replace(token, newtoken);
}
return string;
}
Com a ajuda do indexOf() – que retorna a posição da string que queira achar ou -1 caso não encontre – podemos em poucas linhas resolver isso.
Enquanto ainda existir a string que queira substituir (indexOf != -1) substitua (replace).
Uso:
str = "Phasellus commodo gravida ligula. Vivamus libero eros, dignissim sit amet, imperdiet quis, condimentum ut, enim."; window.alert(replaceAll(str, "a", "[A]"));
me salvou
Olá meu amigo rogério, vc também pode substituir sua função por um replace usando ER, da seguinte forma:
function replaceAll(string, token, newtoken) {
var minha_er = new RegExp(“/”+token+”/g”);
var string_retorno = string.replace( minha_er, newtoken )
return string_retorno;
}
Espero ter ajudado
Opa,
Assim tb rola:
("Lucas é Ferreira").split("é").join("Resendes");
Falou
Muito boa a tua dica Lucas.
![]()
para um caso mais simples ela tem o mesmo ultilidade que a função acima.
[...] Há algum tempo escrevi um post contendo um exemplo de método para fazer replace em toda String. No caso o método que escrevi usava while [...]
Achei um outro post q fazia de uma maneira bem mais simples
str = str.replace(/find/g,”replace”)
onde find é a expressão que vc quer substituir
http://www.bradino.com/javascript/string-replace/
no meu caso que eu só queria substituir um ponto, ficou:
alert(v.replace(/\./g,”"));
sem precisar criar uma nova função
ops, ignore o alert no replace
=P
tive um probleminha com o seguinte
valor = document.getElementById(“meuTextAreaComQuebraDeLinha”);
valor = replaceAll(valor,”\n”, ” “);
No firefox beleza. No IE não. Creio que o IE considere \r\n
valeu pela dica, acabei percebendo esse comportamento do replace() pelo firebug hehehe..
Valeu pela dica Rogério!
Muito útil!!!
simples e prática..
9 Agosto, 2007 às 11:44 am
E se por acaso eu quiser substituir ‘ por \\’.
Não irá funcionar =|