Foros del Web » Programando para Internet » Javascript »

Escapar caracter / en expresión regular

Estas en el tema de Escapar caracter / en expresión regular en el foro de Javascript en Foros del Web. He intentado escapar / con la contrabarra como se hace con los demás caracteres especiales y no funciona. De hecho cuando pongo / me rompe ...
  #1 (permalink)  
Antiguo 11/07/2011, 11:12
zant95
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Escapar caracter / en expresión regular

He intentado escapar / con la contrabarra como se hace con los demás caracteres especiales y no funciona. De hecho cuando pongo / me rompe la sintaxis en Notepad++ y Gedit. ¿Cómo se escapa este caracter?

PD: todos los problemas míos abiertos en hilos anteriores están solucionados, gracias a todos ;)
  #2 (permalink)  
Antiguo 11/07/2011, 12:11
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Pon la regexp que estás usando para poder ver cuál es el problema.
Saludos (:
PD: Me alegro
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 11/07/2011, 12:20
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escapar caracter / en expresión regular

Código Javascript:
Ver original
  1. element[i].innerHTML = element[i].innerHTML.replace(rgxp, '<input type="button" class="Meme-icon Meme-$1" title="$1" />')

El caracter / al cerrar la etiqueta no aparece después de reemplazar y eso es porque lo interpreta como parte de la expresión regular.
  #4 (permalink)  
Antiguo 11/07/2011, 12:45
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Probando con la consola de Chrome no me da problema... ¿Cómo compruebas que esa barra después no aparece?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 11/07/2011, 12:58
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escapar caracter / en expresión regular

¿Cuando crea el botón te aparece su cierre? Es decir />
Porque al reemplazar a mi también me crea el botón desde la consola de Chrome, pero si miro el código no ha cerrado la etiqueta del todo, sale solamente >

EDITO:
Para comprobarlo en Chrome simplemente uso el "Inspeccionar elemento", después en la primera sección "Elements" puedes ver el código de cualquier web que se va modificando dinámicamente.
Si pinchas en el icono de la lupa abajo a la derecha puedes ir directamente a la parte que te interesa.
  #6 (permalink)  
Antiguo 11/07/2011, 13:13
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Pero si te fijas, ni los img, ni los input, ni los br... tienen la / en el cierre, porque lo que estás inspeccionando es el propio DOM, no el código.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 11/07/2011, 13:19
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Escapar caracter / en expresión regular

Menos mal, ya me estaba rompiendo la cabeza en por qué no podía escapar el caracter ;)
No me había fijado de que en el resto tampoco aparece.

Muchas gracias.
  #8 (permalink)  
Antiguo 12/07/2011, 15:20
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, 7 meses
Puntos: 1485
Respuesta: Escapar caracter / en expresión regular

buenas,
solo agregar un detalle de por qué no se ve la barra diagonal. seguramente debe ser porque el documento es cargado como html y no como xhtml. cuando esto sucede, el navegador muestra la sintaxis de acuerdo al modo que haya cargado. al menos comprobado en firefox y chrome.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 12/07/2011, 15:37
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Yo uso doctype XHTML 1.0 Transitional y no me aparecen las barras... ¿Chrome pasa de mí?
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 12/07/2011, 15:52
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, 7 meses
Puntos: 1485
Respuesta: Escapar caracter / en expresión regular

no creo que sea que pase de ti, sino que realmente no estas cargando un documento servido como xhtml. fíjate en el content-type que el navegador reporta en la consola al cargar el documento. en la consola de chrome, vendria siendo la pestaña Network, presionas sobre el documento cargado y analiza los encabezados recibidos. en firefox 4.0.1 lo puedes ver desde el menu Tool > Page Info > General, hay una linea que dice Type. nótese que no es lo mismo text/html que application/xhtml+xml. no importa si el documento se escribe en xhtml, si este se sirve con text/html el navegador lo interpretará como html.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 12/07/2011, 16:11
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Sí, cierto, ¿pero cómo le obligo a cargar el documento como XHTML y no HTML?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #12 (permalink)  
Antiguo 12/07/2011, 16:22
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, 7 meses
Puntos: 1485
Respuesta: Escapar caracter / en expresión regular

hay dos formas: una es cambiando la extensión .html a .xhtml, y la otra es enviando el header Content-Type: application/xhtml+xml desde el servidor.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #13 (permalink)  
Antiguo 12/07/2011, 16:32
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Escapar caracter / en expresión regular

Acabo de descubrir esa extensión Gracias por la info!
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #14 (permalink)  
Antiguo 12/07/2011, 17:17
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, 7 meses
Puntos: 1485
Respuesta: Escapar caracter / en expresión regular

para completar las alternativas anteriores. hay una tercera forma que consiste en tratar el documento como xml. es decir, es como un documento xml normal con su extension .xml y declaración inicial <?xml ... ?>. recuerda que xhtml en esencia es un tipo de aplicación de xml. una nota muy importante que se me paso, al menos en iexplorer8 ninguna de las alternativas anteriores funciona. iexplorer8 parece no saber interpretar xhtml. o al menos yo no se hacerlo funcionar como tal.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: escapar, regular, caracteres
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 00:10.