Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] problema con expresion regular

Estas en el tema de problema con expresion regular en el foro de Javascript en Foros del Web. Hola a todos, tengo el siguiente codigo Código: var = var.replace(/\[(IMG)\]([^\[]+)/gi, '</br></br><img class="img_noticia_expandida" src="$2"/></br></br>'); Lo que hace es basicamente substituir una etiqueta tipo: Código: [IMG]url[/IMG] ...
  #1 (permalink)  
Antiguo 20/07/2016, 09:06
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
problema con expresion regular

Hola a todos, tengo el siguiente codigo
Código:
var = var.replace(/\[(IMG)\]([^\[]+)/gi, '</br></br><img class="img_noticia_expandida" src="$2"/></br></br>');
Lo que hace es basicamente substituir una etiqueta tipo:
Código:
[IMG]url[/IMG]
por el codigo html para mostrar la imagen. El problema es que lo hace todo bien excepto porque a continuacion de la imagen muestra la etiqueta [/IMG]. Lo solucione con lo siguiente:
Código:
var=var.replace(/\[[^\]]+\]/gi, '');
Pero queria hacerlo todo desde la primera expresion regular. ¿seria posible?

Saludo y gracias
  #2 (permalink)  
Antiguo 20/07/2016, 15:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: problema con expresion regular

De entrada te digo que no debes usar a var como una variable pues es una palabra reservada del lenguaje.

En cuanto a tu problema, lo único que tendrías que hacer es utilizar una expresión regular que busque un conjunto de valores cualesquiera entre las etiquetas [IMG] e [/IMG], utilizando los paréntesis para formar un grupo al cual harás referencia en la sustitución para utilizarlo como valor del atributo src:
Código Javascript:
Ver original
  1. var cadena = "[IMG]imagen.jpg[/IMG]",
  2.     patron = /\[IMG\](.*)\[\/IMG\]/gi,
  3.     reemplazo = "<img class='img_noticia_expandida' src='\1' />",
  4.     resultado = cadena.replace(patron, reemplazo);

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 21/07/2016, 09:23
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: problema con expresion regular

Cita:
Iniciado por Alexis88 Ver Mensaje
De entrada te digo que no debes usar a var como una variable pues es una palabra reservada del lenguaje.

En cuanto a tu problema, lo único que tendrías que hacer es utilizar una expresión regular que busque un conjunto de valores cualesquiera entre las etiquetas [IMG] e [/IMG], utilizando los paréntesis para formar un grupo al cual harás referencia en la sustitución para utilizarlo como valor del atributo src:
Código Javascript:
Ver original
  1. var cadena = "[IMG]imagen.jpg[/IMG]",
  2.     patron = /\[IMG\](.*)\[\/IMG\]/gi,
  3.     reemplazo = "<img class='img_noticia_expandida' src='\1' />",
  4.     resultado = cadena.replace(patron, reemplazo);

Gracias amigo justo era lo que estaba buscando.

Un saludo

PD:Puse var para mostrar que ahi iba una variable pero era de un json en realidad, la cambie para no mostrar el nombre de dicha variable.

Etiquetas: expresion, html, regular
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 21:38.