
Dentro del lenguaje JavaScript existe la función replace para realizar la sustitución de cadenas de textos. Podemos ver un ejemplo en «Función Replace en JavaScript».
En este ejemplo vamos a ver como implementarnos la función replace a partir de otras funciones existentes en el lenguaje JavaScript.
Lo primero que haremos será definirnos el interface de la función
function replace(texto,s1,s2);
En esta función reemplazaríamos sobre el texto las cadenas s1 que encontrásemos por las cadenas s2.
Existen diferentes formas de hacer dicha sustitución. Todas ellas nos las tenemos que codificar. En este caso vamos a utilizar dos funciones: .split() y .join().
La primera lo que hace es, a partir de una cadena, crear un array de cadenas. La división la hace a partir del parámetro recibido.
Así, si tenemos el siguiente código:
texto = "Son tres mil trescientos treinta y tres con nueve";
resulado = texto.split("tres");
Lo que obtendremos será un array de la siguiente forma
['Son ',' mil ','cientos treinta y ','con nueve']
Vemos que son 4 cadenas:
- ‘Son ‘
- ‘ mil ‘
- ‘cientos treinta y ‘
- ‘con nueve’
Seguidamente utilizamos el método .join. Este método lo que hace es unir un array de cadenas y entre cada cadena mete el texto que se recibe como parámetro. Así conseguimos hacer la sustitución del texto.
texto =['Son ',' mil ','cientos treinta y ','con nueve'] resultado = texto.join("dos");
El resultado será:
"Son dos mil doscientos treinta y dos con nueve";
La función replace quedará de la siguiente forma:
function replace(texto,s1,s2){ return texto.split(s1).join(s2); }
victor angel
si necesito cambiar letra por letra de un texto como le puedo hacer??
Víctor Cuervo
Buenas Víctor Ángel,
Pues la verdad que no existe un método que reemplace una posición por un contenido. Pero se puede extender la clase String de la siguiente forma:
Al final es concatenar entre el inicio de la cadena y la posición, más el texto añadir, más la subcadena desde el índice hasta el final.
Espero que te sirva.
Saludos.
Víctor Cuervo
Buenas Víctor,
Lo hemos dejado explicado en https://lineadecodigo.com/javascript/reemplazar-por-posicion-con-javascript/
Por si puede ayudar a más gente.
Saludos.
dario
a dos años de escrito, sigue sirviendo!!
me sirvió el uso de split/join en vez de replace
Sebastian
Hey esta bien el ejemplo pero tengo una duda tambien se puede reemplazar mas letras o cadenas con expresiones regulares.
Podrias poner un ejemplo Porfavor …
lineadecodigo
@juan david,
Te la puedes descargar pinchando aquí.
Espero que te sea de ayuda.
juan david
como descargo JavaScriptLa función a mi pc