Foros del Web » Programando para Internet » Javascript »

String::replace

Estas en el tema de String::replace en el foro de Javascript en Foros del Web. El problema es el siguiente, hago un replace para un textarea que me funciona perfecto en FF pero no hace nada en IE cualquier versión ...
  #1 (permalink)  
Antiguo 28/01/2010, 13:47
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
String::replace

El problema es el siguiente, hago un replace para un textarea que me funciona perfecto en FF pero no hace nada en IE cualquier versión (que raro).

Les pego el cachito de codigo para que lo vean.

Código:
while(texto.indexOf("<br>")>=0){
  texto = texto.replace("<br>",String.fromCharCode(13)+String.fromCharCode(10));
}
  #2 (permalink)  
Antiguo 28/01/2010, 14:19
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: String::replace

pues la verdad no se en que exactamente no te funciona porque a mi me trabaja. en todo caso, puedes usar expresiones regulares para buscar todas las instancias de un texto o patron, asi te evitas el bucle. tambien los caracteres de linefeed lo puedes escribir con escape.
Código:
texto.replace(/<br>/g, "\x0D\x0A");
// no creo necesario escribir los dos caracteres, con "\n" puede ser suficiente;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 28/01/2010, 14:31
Avatar de Tecna  
Fecha de Ingreso: enero-2010
Mensajes: 291
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: String::replace

Buenas,

el método indexOf( ) es nativo de firefox y formaba parte de un paquete adicional que contenía extras matriciales. No se si formará ya parte del estandar pero con IE no creo que se lleve muy bien. Pero para lo que quieres hacer mejor usar expresiones regulares
  #4 (permalink)  
Antiguo 28/01/2010, 15:01
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: String::replace

@Tecna,
en los string, indexOf siempre ha existido en el estandar. quizas a lo que tu te refieres es al metodo indexOf en array. creo que comenzo a salir desde la version Javascript 1.6 pero aun el ECMAScript 262 no lo incluye como parte del estandar. sin embargo, no viene al caso de este tema ya que se esta trabajando con string, no con arrays.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 29/01/2010, 06:44
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: String::replace

Estuve haciendo unas pruebas mas, y veo que el javaScript se ejecuta correctamente, parece que es el text area el que no me reconoce el formato, ni salto de linea ni retorno de carro.

Seguire buscando si encuentro alguna solución.
  #6 (permalink)  
Antiguo 29/01/2010, 08:36
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: String::replace

Resolví el problema, no radicaba en el código que les dí, era la forma en que lo insertaba en el text area. Hacia un innerHtml, y este le rompía el retorno de carro y el salto de linea. Basto con poner un .value para solucionar todo.

Con respecto a la regular expression que me paso zerokilled también la implemente, queda bastante mas prolijo. Muchas gracias a todos.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.