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

expresion regular para restringir letras

Estas en el tema de expresion regular para restringir letras en el foro de ASP Clásico en Foros del Web. Hola alguien sabe como hacer una expresion regular para que en una cadena de caracteres solo permita lo siguiente numeros del 0 al 9 espacios ...
  #1 (permalink)  
Antiguo 01/03/2010, 14:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
expresion regular para restringir letras

Hola
alguien sabe como hacer una expresion regular para
que en una cadena de caracteres solo permita lo siguiente

numeros del 0 al 9
espacios
estas letras mayusculas o minusculas (C, L, R, A, T, V, S)

de resto todo lo de mas no lo debe permitir.

gracias. espero puedan colaborarme.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 01/03/2010, 15:38
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 9 meses
Puntos: 41
Respuesta: expresion regular para restringir letras

Se supone que recogeras eso de un formulario no?

Deberias hacerlo con Javascript de cara al usuario y tambien para asegurarte mas, tambien rematarlo con ASP de cara al servidor para impedir intentos malintencionados.

Confirmame que idea tienes para hacerlo y te ayudare mas profundamente

Saludos, Jose
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
  #3 (permalink)  
Antiguo 01/03/2010, 15:40
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

necesito que sea de lado del servidor porque a veces no tendre el javascript activado en la intranet.
entonces si seria bueno hacer esa expresion regular para validar esos datos en el lado del servidor.
y si los traeria de un formulario. tienes alguna idea de como hacerla?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 01/03/2010, 17:10
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 9 meses
Puntos: 41
Respuesta: expresion regular para restringir letras

Se me ocurre algo asi, haces una funcion, le envias la cadena y recibes validado, si validado es 1 es que hay ese caracter metido, si vale 0 es que no hay caracteres validos... pero a todo esto se me plantean otras dudas, si meto un caracter valido y otro no valido que se hace... tambien desconozco la ideas de permitir del 0 al 9 y solo unos tipos de letras... quizas si profundizaras un poco mas podria darte una solucion algo mejor... no he podido probarlo porque estoy en un ordenador algo cutre que se apaga constantemente... este ya es el 3er intento por postearte la solucion, jajajajaja...

Cita:
dim Validado
validado = 0
if (Instr(cadena1,"C")>0 or Instr(cadena1,"c")>0) then
validado = 1
response.Write ("Hay una C o una c en la cadena")
end if
Espero que te sirva

Saludos, Jose
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras

Última edición por Wasper; 02/03/2010 a las 02:51
  #5 (permalink)  
Antiguo 02/03/2010, 07:06
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

gracias portu colaboracion
la verdad es que estoy haciendo un sistema para google maps en una intranet
y el sistema de clientes va enlazado con el mapa.
lo qeu deseo hacer es que solo me ingresen direcciones validas.
por tal motivo permito, numeros, espacios y algunas letras.
si llegaran a ingresar una letra o caracter que no seapermitido debe retornar un error y el usuario debera volver a escribir la direccion.

por tal motivo debe ser una expresion regular para ser mas precisos con la validacion. porque es mas facil escribir lo qeu permito que lo que no permito.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 02/03/2010, 07:15
Avatar de Wasper  
Fecha de Ingreso: julio-2006
Ubicación: de cai, picha!!!
Mensajes: 1.030
Antigüedad: 17 años, 9 meses
Puntos: 41
Respuesta: expresion regular para restringir letras

Prueba eso que te comento, haz las pruebas con una letra permitida a ver si te salen los resultados deseados, si los resultados son los esperados crea el sistema completo, no vayas a crear toda la funcion y despues no te sirva... jejeje...

Si necesitas ayuda, aqui toy.

Saludos, Jose
__________________
Saludos, Jose

Paginas web y SEO
Anuncios por palabras
  #7 (permalink)  
Antiguo 02/03/2010, 07:53
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

denuevo gracias por tu ayuda

quiero hacer algoa si mas o menos..
pero no entiendo mucho de expresiones regulares
este valida si un email es valido.

Código ASP:
Ver original
  1. function esValidoEmail(cadena)
  2. set expReg = New RegExp
  3. expReg.Pattern = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@_
  4. [_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$"
  5. esValidoEmail = expReg.Test(cadena) and len(cadena) < 256
  6. set expReg = nothing
  7. end function
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #8 (permalink)  
Antiguo 03/03/2010, 10:11
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

como podria hacer una exprecion regular o funcion para
colocar en un vector o algo asi las letras y numeros que permito
y todo lo demas no sea permitido?

algo que me recorra letra a letra de una cadena y me diga si esta dentro de las permitidas y si no saque error..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #9 (permalink)  
Antiguo 04/03/2010, 12:50
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Respuesta: expresion regular para restringir letras

Hola lexus, fijate si esto te sirve:

Código ASP:
Ver original
  1. <&#37;
  2. function ereg(strOriginalString, strPattern, varIgnoreCase)
  3.     dim objRegExp : set objRegExp = new RegExp
  4.     with objRegExp
  5.         .Pattern = strPattern
  6.         .IgnoreCase = varIgnoreCase
  7.         .Global = True
  8.     end with
  9.     ereg = objRegExp.test(strOriginalString)
  10.     set objRegExp = nothing
  11. end function
  12.  
  13. Response.Write(ereg("153 clara", "^[0-9]*[c|l|r|a|t|v|s|\s]*$", true))
  14. %>

La funcion me la robé de algún sitio, pero no tengo a la mano la URL

Los argumentos son el string que tiene que hacer match, el patron y si quieres o no ignorar las mayúsculas.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 04/03/2010, 12:51
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

,muchas gracias lo probare y te comento
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #11 (permalink)  
Antiguo 04/03/2010, 13:06
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

gracias

mira que lo probe asi

Código ASP:
Ver original
  1. dim caracteres_permitidos
  2. caracteres_permitidos= "^[0-9]*[c|l|r|a|t|v|s|\s]*$"
  3.  
  4. function ereg(strOriginalString, strPattern, varIgnoreCase)
  5.     dim objRegExp : set objRegExp = new RegExp
  6.     with objRegExp
  7.         .Pattern = strPattern
  8.         .IgnoreCase = varIgnoreCase
  9.         .Global = True
  10.     end with
  11.     ereg = objRegExp.test(strOriginalString)
  12.     set objRegExp = nothing
  13. end function


pero probandolo cai en cuenta que no me servira
yo lo necsito para que me ingresen direcciones validas

es que por ejemplo
tengo una direccion asi CL 27 4 B-08
esa seria una direccion bien escrita
una mala escrita seria asi CL 27 4 B-08 piso 2 apto 202

el problema es que no habia caido en cuenta que en la mitad de la direccion
tambien pueden haber letras 4 b
y guiones
entonces si permito todas las letras, cuando escriban piso o apto, lo permitiria y esta mal.
entonces ahi si no se que hacer para impedir que me escriban mal las direcciones.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 04/03/2010, 13:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Respuesta: expresion regular para restringir letras

Hola lexus

Necesitarías proporcionar específicamente cuales son ejemplos direcciones válidas, de lo contrario es imposible obtener un patrón.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 04/03/2010, 13:18
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

al parecer seria muy dificil obtener un patron porque las direcciones pueden ser escritas de muchas formas
crees que seria mas facil poner algunas palabras prohibidas mejor?
por ejemplo piso, apto, etc..? o no seria lo ideal.

tengo esta funcion que lo que hace es reemplazar palabras por algo..
sabrias como modificarla para que en lugar de reemplazar cuando encuentre al menos una de las palabras saque el error de que esta mal escrita?

Código ASP:
Ver original
  1. '''Funcion para prohibir ciertas letras en la direccion
  2. Function filtrar_palabras(texto)
  3.     Dim Temp, palabrasVector, palabras_prohibidas, reemplazar, i
  4.     reemplazar = "***"
  5.     palabras_prohibidas = "piso#apto#apartamento#oficina#"
  6.     Temp = texto
  7.     palabrasVector = Split(palabras_prohibidas, "#")
  8.     For i = 0 To UBound(palabrasVector)
  9.         Temp = Replace(Temp, palabrasVector(i), reemplazar, 1, -1, 1)
  10.     Next
  11.     filtrar_palabras = Temp
  12. End Function
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #14 (permalink)  
Antiguo 04/03/2010, 16:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Respuesta: expresion regular para restringir letras

Bueno...se me ocurre algo como esto:

Código ASP:
Ver original
  1. '''Funcion para prohibir ciertas letras en la direccion
  2. Function filtrar_palabras(texto)
  3.     Dim Temp, palabrasVector, palabras_prohibidas, reemplazar, i, esCadenaValida
  4.     reemplazar = "***"
  5.     palabras_prohibidas = "piso#apto#apartamento#oficina#"
  6.     Temp = texto
  7.     palabrasVector = Split(palabras_prohibidas, "#")
  8.     esCadenaValida = true
  9.     For i = 0 To UBound(palabrasVector)
  10.         'Temp = Replace(Temp, palabrasVector(i), reemplazar, 1, -1, 1)
  11.         if instr(1,palabrasVector(i),texto) > 0 then
  12.             esCadenaValida = false
  13.             exit for
  14.         end if
  15.     Next
  16.     'filtrar_palabras = Temp
  17.     filtrar_palabras = esCadenaValida
  18. End Function
  19.  
  20. Response.Write(filtrar_palabras("oficina") & "<br>")
  21. Response.Write(filtrar_palabras("edificio") & "<br>")

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #15 (permalink)  
Antiguo 05/03/2010, 06:28
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: expresion regular para restringir letras

Hola gracias por ayudarme
lo probe asi con varias palabras y ambos me dieron verdadeero
lo cual deberia dar falso porque ingrese una palabra prohibida en el primer ejemplo


Código ASP:
Ver original
  1. '''Funcion para prohibir ciertas letras en la direccion
  2. Function filtrar_palabras(texto)
  3.     Dim  palabrasVector, palabras_prohibidas, i, esCadenaValida
  4.     palabras_prohibidas = "piso#apto#apartamento#oficina#"
  5.     palabrasVector = Split(palabras_prohibidas, "#")
  6.     esCadenaValida = true
  7.     For i = 0 To UBound(palabrasVector)
  8.         if instr(1,palabrasVector(i),texto) > 0 then
  9.             esCadenaValida = false
  10.             exit for
  11.         end if
  12.     Next
  13.     filtrar_palabras = esCadenaValida
  14. End Function
  15.  
  16. Response.Write(filtrar_palabras("juan oficina") & "<br>")
  17. Response.Write(filtrar_palabras("juan edificio") & "<br>")
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #16 (permalink)  
Antiguo 05/03/2010, 12:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Respuesta: expresion regular para restringir letras

Vamos, vamos lexus un poco de voluntad.

Código ASP:
Ver original
  1. '''Funcion para prohibir ciertas letras en la direccion
  2. Function filtrar_palabras(texto)
  3.     Dim  palabrasVector, palabras_prohibidas, i, esCadenaValida
  4.     'La ultima almohadilla no es necesaria, esto ocasiona un string vacio
  5.     palabras_prohibidas = "piso#apto#apartamento#oficina"
  6.     palabrasVector = Split(palabras_prohibidas, "#")
  7.     esCadenaValida = true
  8.     For i = 0 To UBound(palabrasVector)
  9.         'cambia el orden de los argumentos
  10.         if instr(1,texto,palabrasVector(i)) > 0 then
  11.             esCadenaValida = false
  12.             exit for
  13.         end if
  14.     Next
  15.     filtrar_palabras = esCadenaValida
  16. End Function
  17.  
  18. Response.Write(filtrar_palabras("juan oficina") & "<br>")
  19. Response.Write(filtrar_palabras("juan edificio") & "<br>")

Ahi debe quedar y si no me corto un....cabello
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Etiquetas: expresion, letras, regular, restringir
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 01:34.