Foros del Web » Programando para Internet » ASP Clásico »

Eliminar HTML en Select List

Estas en el tema de Eliminar HTML en Select List en el foro de ASP Clásico en Foros del Web. Saludos Estoy armando un select list con valores que vienen de uan DB. El asunto es que la data del campo de la DB tiene ...
  #1 (permalink)  
Antiguo 13/02/2006, 15:36
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Eliminar HTML en Select List

Saludos

Estoy armando un select list con valores que vienen de uan DB.

El asunto es que la data del campo de la DB tiene etiquetas HTML

Ej:

<stron>1</stron> ; <font size=1>2</font>

Al momento de armar el select list, esas etiquetas "dañan" el mismo.

Cómo le quito esas etiqueta antes de mandar a armar el select list??

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 13/02/2006, 23:01
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años, 5 meses
Puntos: 37
campo = replace(origen, "<BR>", "")
  #3 (permalink)  
Antiguo 14/02/2006, 04:09
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Yo uso esta funcion para limpiar de codigo HTML las variables:

Código:
    Function cleanHTML(ByVal pStrHTML)
    	
    	Dim lObjRegExp
    	If VarType(pStrHTML) = vbNull Then Exit Function
    	If pStrHTML = "" Then Exit Function
    	Set lObjRegExp = New RegExp
    	lObjRegExp.Global = True
    	lObjRegExp.IgnoreCase = True
    	lObjRegExp.Pattern = "<(/)?SCRIPT|META|STYLE([^>]*)>"
    	pStrHTML = lObjRegExp.Replace(pStrHTML, "")
    	lObjRegExp.Pattern = "<(/)?(LINK|IFRAME|FRAMESET|FRAME|APPLET|OBJECT)([^>]*)>"
    	pStrHTML = lObjRegExp.Replace(pStrHTML, "")
    	lObjRegExp.Pattern = "(<A[^>]+href\s?=\s?""?javascript:)[^""]*(""[^>]+>)"
    	pStrHTML = lObjRegExp.Replace(pStrHTML, "")
    	lObjRegExp.Pattern = "(<IMG[^>]+src\s?=\s?""?javascript:)[^""]*(""[^>]+>)"
    	pStrHTML = lObjRegExp.Replace(pStrHTML, "")
    	lObjRegExp.Pattern = "<([^>]*) on[^=\s]+\s?=\s?([^>]*)>"
    	pStrHTML = lObjRegExp.Replace(pStrHTML, "")
    	Set lObjRegExp = Nothing
    	
    	cleanHTML = pStrHTML
    	
    End Function
Espero que te sirva.



Un saludo
  #4 (permalink)  
Antiguo 14/02/2006, 07:34
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Saludos tammander

Efectivamente funciono tu código, pero tiene el detalle que hay que agregar las etiquetas html fantantes, y quien sabe que etiquetas vendrán de los campos de la DB.

Pero momentaneamente la he utilizado.

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 14/02/2006, 09:31
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
porque guargas las etiquetas en la base de datos?????

deverias de dejralas limpias y a la hora de mostrar poner las etiqueitas que necesitas

saludos
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 14/02/2006, 10:20
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Me alegra que te sirva Esa funcion es para limpiar codigo HTML. Para evitar sentencias SQL haz otra funcion con expresiones regulares acordes al tema (SELECT, UPDATE, etc).



Un saludo
  #7 (permalink)  
Antiguo 17/02/2006, 15:18
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Bien, pues Juan, los usuarios pueden colocar el código que quieran, porque son titulares de noticias y si quieren que un titular tenga dos letras en negrita pueden hacerlo. Si quieren que un titulr sea un enlace pueden hacerlo si quieren que un titular tenga cada letra de un color en particular, pueden hacerlo.

Es parte de los requerimientos que el cliente pidio.

tammader, no quiero validar código maligno dentro del select, simplemente quitar las etiquetas HTML, como te digo, tu código funciona, pero si al usuario se le ocurre colocar cualquier etiqueta HTML que no este parametrizada en la función, todo se dañara.

Pero ya consegui un código que piensa en eso.

Aquí se los dejo:

Código:
    Function RemoveHTML(strText) 
        Dim nPos1
        Dim nPos2
        
        nPos1 = InStr(strText, "<") 
        Do While nPos1 > 0 
            nPos2 = InStr(nPos1 + 1, strText, ">") 
            If nPos2 > 0 Then 
                strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1) 
            Else 
                Exit Do 
            End If 
            nPos1 = InStr(strText, "<") 
        Loop 
        
        RemoveHTML = strText 
    End Function
Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 15:11.