Conversión de cadenas
La idea de este ejemplo es ver como dado un texto podemos hacer el reemplazo de una cadena por otra. Es decir, codificar la funcionalidad del meú reemplazar... que tienen muchos programas.
Para localizar una cadena dentro de otra tenemos varias funciones, pero nosotros nos vamos a basar en las siguientes:
- indexOf (cadenaBuscada), esta función nos devuelve la posición inicial de la subcadena que estamos buscando.
- substring (posicion_inicial, posicion_final), obtiene la subcadena existente entre las dos posiciones dadas.
- length, tamaño de la cadena.
Veamos que hacer...
var texto = "Como una ola, llegue a tu vida, como una ola"; var cadenaBuscada = "ola"; var nuevaCadena = "bala"; texto.indexOf ( cadenaBuscada );
Una vez que hemos localizado la posición inicial de la cadena buscada deberemos de reemplazar la cadena antigua por la nueva. A si que el texto estará compuesto por:
Nueva cadena =
Texto desde la posición inicial a la posición inicial de la cadena encontrada
+ nueva cadena
+ Texto que hay desde que acaba la cadena buscada (posición inicial de la cadena encontrada + longitud de la cadena) hasta el final del texto
Codificando esto en javascript, sería:
posicionCadenaEncontrada = texto.indexOf (cadenaBuscada);
texto =
substring (0, posicionCadenaEncontrada)
+ nuevaCadena
+ substring (posicion + cadenaBuscada.length, texto.length)
Pero este código solo nos sustituiría la primera ocurrencia encontrada. Para poder buscar todas las coincidencias deberemos de realizar un bucle que realize los reemplazos mientras no encuentre ocurrencias de la cadena buscada. Veamos el código...
while (texto.indexOf ( cadenaBuscada ) > -1) {
...
}