Foros del Web » Programando para Internet » Javascript »

Problema remplazando ' por \' en js con replace

Estas en el tema de Problema remplazando ' por \' en js con replace en el foro de Javascript en Foros del Web. Necesito sustituir todas las comillas simples de un caja de texto por la comilla precedida de \ pero por alguna razon no lo consigo, realizo ...
  #1 (permalink)  
Antiguo 17/01/2013, 12:56
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Problema remplazando ' por \' en js con replace

Necesito sustituir todas las comillas simples de un caja de texto por la comilla precedida de \ pero por alguna razon no lo consigo, realizo un alert de una cadena como:

Código Javascript:
Ver original
  1. str="O'Connel";
  2. alert(str.replace(/'/g, '\''));

Y en vez de obtener :
O\'Connel sigo obteniendo O'Connel.

Que estoy haciendo mal???

Gracias!
  #2 (permalink)  
Antiguo 17/01/2013, 13:00
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 11 meses
Puntos: 606
Respuesta: Problema remplazando ' por \' en js con replace

Prueba así:

Código Javascript:
Ver original
  1. alert(str.replace("'","\\'"));

Diria que tu versión también funcionaria si usases una doble contrabarra (para evitar que se use como caracter de escape).
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 17/01/2013, 13:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Problema remplazando ' por \' en js con replace

Porque el reemplazo que utilizas también tiene una secuencia de escape:
Código Javascript:
Ver original
  1. alert(str.replace(/'/g, "\\'"));
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: js, replace
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 04:30.