Foros del Web » Programando para Internet » PHP »

Expresion Regular dentro de switch???

Estas en el tema de Expresion Regular dentro de switch??? en el foro de PHP en Foros del Web. Hola, mirar estaba usando este script para validar un formulario y el problema se me presenta cuando tengo que añadir un campo en el fomulario ...
  #1 (permalink)  
Antiguo 22/10/2005, 04:57
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 14 años
Puntos: 0
Pregunta Expresion Regular dentro de switch???

Hola, mirar estaba usando este script para validar un formulario y el problema se me presenta cuando tengo que añadir un campo en el fomulario del cual necesito extraer no un numero sino una cadena de texto y como va a ser dinamica no se como meterla en el switch, entonces he pensado en usar una expresion regular, pero no se si es buen planteamiento, este ejemplo no da error pera la variable no me llega.
He intentado validar el campo antes del swith y pasar una variable en el case, pero nada. Es viable? Entonces que hago mal?

Código PHP:
$clean = array();
switch(
$_POST['orden'])
{
    case 
'1':
    case 
'2':
    case 
'3':
    case 
'4':
    case 
'5':
    case 
'6':
    case 
'7':
    case 
ereg("^[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$"$_POST['orden']);
    
    
$_SESSION['orden'] = $_POST['orden'];
    
$clean['orden'] = $_SESSION['orden'];
    
        break;

Saludos
  #2 (permalink)  
Antiguo 23/10/2005, 07:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
No creo que algo así sea posible, switch() hace comparaciones "directas"... además de que ereg() solo te devuelve TRUE ó FALSE, nada que puedas ocupar como un case.

Haz uso de if()'s simples si vaz a manejar expresiones regulares:
Código PHP:
if(ereg("tu_regex"$variable)) {
   
//bloque
} elseif (regex("tu_regex"$variable)) { 
   
// bloque
} elseif($variable=="algo") { // como un case
   //bloque
//etc 
www.php.net/control-structures.elseif

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 00:20.