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

Tratar cadenas

Estas en el tema de Tratar cadenas en el foro de ASP Clásico en Foros del Web. Hola a tod@s, tengo un formulario donde los usuarios introducen varios datos. Antes de insertar estos datos quiero coger uno de los campos y quitar ...
  #1 (permalink)  
Antiguo 28/05/2007, 01:20
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Tratar cadenas

Hola a tod@s, tengo un formulario donde los usuarios introducen varios datos. Antes de insertar estos datos quiero coger uno de los campos y quitar cualquier espacio, punto, guion, barra etc etc que le hayan podido poner, es decir, que se queden solo numeros y letras. Hay alguna forma de conseguirlo?? Gracias
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 28/05/2007, 02:21
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Tratar cadenas

Yo uso esta clase

Código:
class clsRegExp
    private obj, pattern, gg, ic
    
    property let setPattern(str)
        pattern = str
    end property

    property let setGlobal(str)
        gg = str
    end property

    property let setIgnoreCase(str)
        ic = str
    end property

    property get strPattern
        strPattern = pattern
    end property

  '*********************************************************************
  ' Initialization/Termination            BOF
  '*********************************************************************

  'Initialize Class Members
  Private Sub Class_Initialize()
    pattern = ""
    gg = true
    ic = false
  End Sub

  'Terminate and unload all created objects
  Private Sub Class_Terminate()
    ' Terminate 
  End Sub
  '*********************************************************************
  ' Initialization/Termination            EOF
  '*********************************************************************

  
  public function isValidData(esto)
      dim obj, found
        set obj = New RegExp 
        with obj
             .Pattern = pattern
             .Global = gg
             .IgnoreCase = ic
        end with
        isValidData = obj.test(esto)
        set obj = nothing
  end function

  public function substract(esto)
      dim obj, found
        set obj = New RegExp 
        with obj
             .Pattern = pattern
             .Global = gg
             .IgnoreCase = ic
        end with
        Set Matches = obj.Execute(esto)
        found = ""
        for each m in Matches
            found = found & m.value
        next
        substract = found
        set obj = nothing
  end function
  
end class
Para usarla, te dejo un ejemplo:

b = "4'32#frffwDDF-;"
set r = new clsRegExp
r.setPattern = "\w"
response.Write("<br>" & r.substract(b))
set r = nothing


espero te sirva


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 28/05/2007, 03:21
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Re: Tratar cadenas

Lo he intentado pero al entrar en la página, me sale el siguiente error:

Error de compilación de Microsoft VBScript error '800a03ea'

Cita:
Error de compilación de Microsoft VBScript error '800a03ea'

Error de sintaxis

/pruebanif.asp, línea 13

class clsRegExp
^
Que está fallando?? Ahh y una pregunta, para que sirve esto: r.setPattern = "\w"?? Supongo que para que elimine las W, no?? Como habría que ponerlo si quiero eliminar más de un carácter??
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 28/05/2007, 04:24
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Tratar cadenas

Cita:
Iniciado por angel_dope Ver Mensaje
Error de compilación de Microsoft VBScript error '800a03ea'



Que está fallando??
Dime donde has puesto la clase. Te recomiendo que la metas en un archivo y la anexes con un include file. Tambien dime lo que hay en la linea justamente anterior. Si lo metes en el mismo archivo, ponlo al principio. Justo despues de

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>


Cita:
Iniciado por angel_dope Ver Mensaje
para que sirve esto: r.setPattern = "\w"?? Supongo que para que elimine las W, no?? Como habría que ponerlo si quiero eliminar más de un carácter??
Los pattern o patrones son la piedra angular del objeto regExp de ASP VBScript. Son patrones de busqueda que resuelven cientos de lineas de código en una sola.

\w --> Significa que busque todas las apariciones de letras y numeros (solo letras y numeros, nada de comillas, puntos, etc) en la cadena pasada

Una forma simple del uso de patrones es este:

b = "Solo quiero saber si aparece la palabra ASP en este texto"
set r = new clsRegExp
r.setPattern = "ASP"
r.setGlobal = true
r.setIgnoreCase = true

if r.isValidData(b) then response.Write("En esta frase: <b>" & b & "</b> existe este patron de búsqueda: " & r.strPattern )


set r = nothing



Páginas de Interés:

Tutorial en español de las expresiones regulares

Lo más básico

Toda una página dedicada a las expresiones regulares

Algo mas avanzado
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 31/05/2007, 04:41
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Re: Tratar cadenas

Ok, ya he conseguido que funcione moviendolo al principio del archivo como tu decías. Muchas gracias por todo

P.D.: He estado haciendo pruebas, y elimina todos los caracteres excepto el guión bajo "_" a que se debe esto??

Nuevamente, muchas gracias, salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #6 (permalink)  
Antiguo 31/05/2007, 06:45
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Tratar cadenas

Si, asi es. El comodín /w (en minusculas) es para caracteres alfanumericos y el caracter _ . Otra expresión regular muy buena es

[^a-zA-Z0-9]

Lo mejor es echarle un vistazo a las webs que te puse antes. Verás que se abre todo un mundo nuevo con las expresiones regulares y que es casi un lenguaje en si mismo.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #7 (permalink)  
Antiguo 31/05/2007, 07:47
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Re: Tratar cadenas

Ok, gracias, he usado el patron que me has puesto, pero sin el ^ que es para negar.

Esas páginas que me has puesto van directas a la sección de favoritos jeje. Salu2

P.D.: Os están llegando los avisos de que alguien ha respondido?? Porque a mi no :|
__________________
Vayamos por Partes :: Jack el Destripador
  #8 (permalink)  
Antiguo 31/05/2007, 12:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Tratar cadenas

Cita:
P.D.: Os están llegando los avisos de que alguien ha respondido?? Porque a mi no :|
Cielos!, no sabia que alguien usaba esa opción! nah, es broma
  #9 (permalink)  
Antiguo 01/06/2007, 00:27
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Re: Tratar cadenas

Vaya, este último si que me ha llegado como toca
__________________
Vayamos por Partes :: Jack el Destripador
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 18:20.