Validar Código Universitario
Código PHP:
function verificarCodigo($edValor)
{
$es=false; // indica si es falso o verdadero
$salir=false; // mientras sea falso verifica....
$estado=0;
$delantero=0;
$longitud=strlen($edValor);
while(!$salir)
{
switch($estado)
{
case 0:
$c=$edValor[$delantero];
$delantero++;
if (($c=='7')||($c=='8')||($c=='9'))
{
$estado=1;
}
elseif($c=='0')
{
$estado=9;
}
else
$estado=15;
break;
case 9:
$c=$edValor[$delantero];
$delantero++;
if (($c=='0')||($c=='1')||($c=='2')||($c=='3')||($c=='4')||($c=='5'))
{
$estado=10;
}
else
$estado=15;
break;
case 10:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=11;
}
else
{
$estado=15;
}
break;
case 11:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=12;
}
else
{
$estado=15;
}
case 12:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=13;
}
else
{
$estado=15;
}
break;
case 13:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=14;
}
else
{
$estado=15;
}
break;
case 14:
$c=$edValor[$delantero];
$delantero++;
if (($c=='a')||($c=='b')||($c=='c')||($c=='d')||($c=='e')||($c=='f')||($c=='g')||($c=='h')||
($c=='i')||($c=='j')||($c=='k'))
{
$estado=16;
}
else
{
$estado=15;
}
break;
case 16:
if($longitud==$delantero)
{
if($this->letraCorrecta($edValor))
{
$es=true;
$salir=true;
}
else
$estado=15;
}
else
{
$estado=15;
}
break;
case 1:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=2;
}
else
{
$estado=15;
}
break;
case 2:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=3;
}
else
{
$estado=15;
}
break;
case 3:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=4;
}
else
{
$estado=15;
}
case 4:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=5;
}
else
{
$estado=15;
}
break;
case 5:
$c=$edValor[$delantero];
$delantero++;
if ($this->esDigito($c))
{
$estado=6;
}
else
{
$estado=15;
}
break;
case 6:
$c=$edValor[$delantero];
$delantero++;
if (($c=='a')||($c=='b')||($c=='c')||($c=='d')||($c=='e')||($c=='f')||($c=='g')||($c=='h')||
($c=='i')||($c=='j')||($c=='k'))
{
$estado=7;
}
else
{
$estado=15;
}
break;
case 7:
if($longitud==$delantero)
{
if($this->letraCorrecta($edValor))
{
$es=true;
$salir=true;
}
else
$estado=15;
}
else
{
$estado=15;
}
break;
case 15:
$salir=true;
break;
default:
echo "ocurrio un error!!";
} // fin swhish
} //fin while
return $es;
}//FIN verficarFraccion()