Como a melhor maneira de fazer replaceAll no JavaScript?
Qual a melhor maneira de fazer replaceAll no JavaScript?
Dessa forma está correta?
var i = 0;
while ((i = str.indexOf("_", i)) != -1) {
str = str.replace("_", " ");
}
Ou ainda, esta?
str = str.split("_").join(" ");
Dessa forma está correta?
var i = 0;
while ((i = str.indexOf("_", i)) != -1) {
str = str.replace("_", " ");
}
Ou ainda, esta?
str = str.split("_").join(" ");
Jorge Filho
Curtidas 0
Respostas
Marcelo Pastore
11/01/2016
Alguem sabe?
GOSTEI 0
Jothaz
11/01/2016
Em programação não podemos nos ater a receitas e formulas prontas, pois envolve criatividade e uma das maravalhas de programar é justamente abordar um questão de várias formas distintas e conseguir chegar ao mesmo resultado.
Se funcionou e retorno o resultado esperado então de certa forma esta correto. O que pode acontecer é que em determinado cenário algumas soluções são melhores e mais performáticas que outras.
Tanto:
Como:
Estão corretos. No primeiro você faz um loop e retira o carácter no segundo você cria um vetor (split) usando o carácter que deseja eliminar e depois faz um join convertendo o vetor novamente em string. Já vi alguns teste que indicam que usar split e join é um das forma mais rápidas de se fazer o replace.
Veja outra formas de fazer o replace, [url:descricao=código funcional no jsfiddle ]https://jsfiddle.net/jothaz/ghq6axv8/1/[/url]
Como pode ser visto basta usar a imaginação, criatividade e conhecimento que o que não faltam são opções.
E isto usando somente JavaScript, pois com jQuery também é possível fazer o raplace, mas eu nem quis complicar.
Se funcionou e retorno o resultado esperado então de certa forma esta correto. O que pode acontecer é que em determinado cenário algumas soluções são melhores e mais performáticas que outras.
Tanto:
var i = 0;
while ((i = str.indexOf("_", i)) != -1) {
str = str.replace("_", " ");
}
Como:
str = str.split("_").join(" ");
Estão corretos. No primeiro você faz um loop e retira o carácter no segundo você cria um vetor (split) usando o carácter que deseja eliminar e depois faz um join convertendo o vetor novamente em string. Já vi alguns teste que indicam que usar split e join é um das forma mais rápidas de se fazer o replace.
Veja outra formas de fazer o replace, [url:descricao=código funcional no jsfiddle ]https://jsfiddle.net/jothaz/ghq6axv8/1/[/url]
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>//<![CDATA[
function myFunction(){
texto = '1234-5678-aaaa-bbbb'
res = texto.replace('-', '')
document.getElementById('texto').innerHTML = 'Texto de exemplo: ' + texto;
document.getElementById('replace').innerHTML = 'replace() - do JavaSCript troca somente o primeiro elemento econtrado: ' + res;
res = replaceAllRegExp(texto, '-', '');
document.getElementById('replaceAllRegExp').innerHTML = 'replaceAll - Criei uma função usando expressão regular, troca todos: ' + res;
}
function replaceAllRegExp(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
//]]>
</script>
</head>
<body>
<button onclick="myFunction()">Click me</button>
<p id="texto"></p>
<p id="replace"></p>
<p id="replaceAllRegExp"></p>
</body>
</html>
Como pode ser visto basta usar a imaginação, criatividade e conhecimento que o que não faltam são opções.
E isto usando somente JavaScript, pois com jQuery também é possível fazer o raplace, mas eu nem quis complicar.
GOSTEI 0
Marcelo Pastore
11/01/2016
É um dos grandes desafios dessa área.
pois envolve criatividade e uma das maravalhas de programar é justamente abordar um questão de várias formas distintas e conseguir chegar ao mesmo resultado.
GOSTEI 0