Foros del Web » Programando para Internet » PHP »

una manito con expresiones regulares

Estas en el tema de una manito con expresiones regulares en el foro de PHP en Foros del Web. necesito validar algunas entradas en un formulario y permitir ciertos caracteres, pero soy muy malo aun en expresiones regulares, necesito hace una funcion que me ...
  #1 (permalink)  
Antiguo 26/04/2003, 02:53
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
una manito con expresiones regulares

necesito validar algunas entradas en un formulario y permitir ciertos caracteres, pero soy muy malo aun en expresiones regulares, necesito hace una funcion que me devuelva nada en caso de que los caracteres ingresados no esten en la lista

los caracteres que se aceptan pueden ir en cualquier parte del texto y son:

[ ] | ^ - _ letras y numeros

hice algo pero algunos caracteres NO LOGRO ACEPTARLOS porque son reservados...

function validar_nick($nick){

$nick = trim($nick);
if (!eregi("^[_a-z0-9-]+$",$nick)){
return "";
} else {
return $nick;
}

}

bueno eso. gracias de antemano :)

PD: si alguien tiene algun buen manual de expresiones regulares me da la direccion y si esta en español mejor :)
__________________
=PoWeReD By MySeLf!=
  #2 (permalink)  
Antiguo 26/04/2003, 10:01
Avatar de sdf23  
Fecha de Ingreso: diciembre-2002
Mensajes: 297
Antigüedad: 15 años
Puntos: 0
Hola mira checate este manual
http://www.ignside.net/man/php/regex.php

me ayudo bastante con las expresiones regulares
__________________

la vida es bella cuando no es culera
  #3 (permalink)  
Antiguo 26/04/2003, 14:58
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
gracias, esta bastante bueno el articulo, de todas maneras... alguien tiene alguna idea respecto de la expresion regular :)

grax
__________________
=PoWeReD By MySeLf!=
  #4 (permalink)  
Antiguo 26/04/2003, 15:49
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Cuales son los caracteres que deseas aceptar (o comprobar)?

Ponme un ejemplo de que palabras pasan y cuales no... creo que puedo ayudarte...
__________________
Manoloweb
  #5 (permalink)  
Antiguo 26/04/2003, 16:19
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
bueno lo que estay intentando es aceptar solo palabras validas como nicks de IRC como por ejemplo

emilio
e-milio
[e-milio]
e^milio
_emilio_
[_^_^_]
d^_^b

y ademas si quiere puede tener espacios

e-milio y [email protected]

eso :)
__________________
=PoWeReD By MySeLf!=
  #6 (permalink)  
Antiguo 26/04/2003, 16:24
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
hasta ahora esto me acepta mi nick y poner underscores

eregi("^[_a-z0-9-]+$",$nick)
__________________
=PoWeReD By MySeLf!=
  #7 (permalink)  
Antiguo 26/04/2003, 20:51
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
esa expresión, aparte de los underscores, te acepta también el guión del medio ( el menos, vamos )
La expresión que necesitás es la siguiente :

^[a-z0-9_\-\[\]\^\|\s]+$

SAludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #8 (permalink)  
Antiguo 26/04/2003, 21:46
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
Hey! muchas gracias, pero aunqu no me resulto con el patron que me diste, arregle unas cositas por aqui y por alla y me resulto al fin :)

function sanitizar_nick($nick){

// limpiamos 1
$nick = trim($nick);
$nick = stripslashes($nick);
$nick = strip_tags($nick);

// si el nick no coincide con el patron entonces devuelve vacio
if (!eregi("^([-a-z0-9_]|\^|\[|\]|\s)+$",$nick)){
return "";
} else {
return $nick;
}

}

gracias por todo, y aqui les dejo un tutorial muy bueno, de expresiones regulares de BULMA (sitio muy bueno, publicidad aparte xD)

http://bulmalug.net/body.phtml?nIdNoticia=770&nIdPage=2
__________________
=PoWeReD By MySeLf!=
  #9 (permalink)  
Antiguo 26/04/2003, 22:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A nivel de "programación" .. yo haría dos funciones: una para validar la sintax (el de la expresión regular) .. y otro para "filtrar" esa cadena (string) como lo haces con el bloque de código primero de tu función ..

Acuerdate que cuanto mas separes las funcionalidades de tu código mas "portatil" será e incluso te vendrá bien para hacer "métodos" si decides meter esa función (junto con otras) en un Objeto (class) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 26/04/2003, 22:53
Avatar de e-miliox  
Fecha de Ingreso: noviembre-2002
Ubicación: San Antonio - Chile
Mensajes: 223
Antigüedad: 15 años, 1 mes
Puntos: 7
sip, de hecho las tres instrucciones las saque y las puse en otra funcion pa reutilizarla, es buena idea lo de la clase para validar user input, pero aun me cuesta un poco entender las Exp REg, y eso que mas tarde habria que agregarle otras caracteristicas como limpiar para una posterior insercion en una bd, por ejemplo... seria muy util, gracias a todos.
__________________
=PoWeReD By MySeLf!=
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 11:31.