Foros del Web » Programando para Internet » PHP »

alluda con eregi

Estas en el tema de alluda con eregi en el foro de PHP en Foros del Web. if(!eregi("([^A-Za-Z0-9]"),$test)) { asd(); } quiero que: si $test solo contiene caracteres alfa numericos, que se ejecute asd(); pero me parece que no se escrive asi ...
  #1 (permalink)  
Antiguo 08/11/2010, 16:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
alluda con eregi

if(!eregi("([^A-Za-Z0-9]"),$test))
{
asd();
}

quiero que:
si $test solo contiene caracteres alfa numericos, que se ejecute asd();

pero me parece que no se escrive asi el codigo, como se escrive?
  #2 (permalink)  
Antiguo 08/11/2010, 17:18
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: alluda con eregi

Intenta esto :

Código PHP:
Ver original
  1. if(preg_match('/^[a-zA-Z0-9]+$/', $test, $match)) {
  2.        // Ejecutamos la función asd();
  3.        asd();
  4. }
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 08/11/2010, 17:19
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: alluda con eregi

<?php
$test="hgg123ig23gh4ghjgb3hg23hhjkghhGLGhjgKG";
function asd(){
echo "solo contiene alfanumericos";
}
if(eregi("[a-zA-Z0-9]",$test))
{
asd();
}
?>
Nota Las funciones ereg(); eregi(); ereg_replace(); eregi_replace(); ya son obsoletas mejor usa las que comiencen con preg_
  #4 (permalink)  
Antiguo 08/11/2010, 17:22
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: alluda con eregi

Bueno, para agregar a la respuesta de hackjose, y que además no alcance a editar mi 1er post .

El símbolo ^ dentro de corchetes sirve como negación. Por lo que tu expresión habría validado cadenas que NO contuvieran letras y dígitos. Si aquel símbolo lo dejas fuera de los corchetes, sirve para buscar cadenas que comiencen con ese rango de caracteres.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 08/11/2010, 17:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

si la funcion eregi es obsoleta, que funcion uso?
  #6 (permalink)  
Antiguo 08/11/2010, 17:33
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: alluda con eregi

Cita:
Iniciado por Alfonso1 Ver Mensaje
si la funcion eregi es obsoleta, que funcion uso?
¿Leíste alguna de las respuestas que se te dieron?
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 08/11/2010, 17:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

perdon spider_boy, habia pasado por alto tu respuesta
  #8 (permalink)  
Antiguo 08/11/2010, 18:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

alguien me puede esplicar que puso spider_boy?

Código:
if(preg_match('/^[a-zA-Z0-9]+$/', $test, $match)) 
{       
asd();
}
qur seria la variable match?

tampo entiendo lo que boy a pener en negrita.
'/^[a-zA-Z0-9]+$/'
  #9 (permalink)  
Antiguo 08/11/2010, 18:30
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: alluda con eregi

aca te daran las respuestas de que es esa variable y aca hay un aporte donde el compañero explica su uso saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 09/11/2010, 09:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

sigo sin entender lo que esta en negrita y rojo '/^[a-zA-Z0-9]+$/'

tampoco puedo entender que es $match
  #11 (permalink)  
Antiguo 09/11/2010, 09:35
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: alluda con eregi

lee esto
http://www.php-hispano.net/archivos/...egulares1.html

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #12 (permalink)  
Antiguo 09/11/2010, 14:01
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

si lo que yo quiero es que la cadena test solo tenga caracteres alfanumericos o "_", puedo usar "\w"

pero no se como quedaria, y sigo sin entender para que sirven lo que marque en rojo en mis mensajes anteriores.

no entiendo porque hay un \ al final, ¿que acaso este caracter no elimina cualquier significado que pueda tener el caracter siguiente?

Cita:
^ - Carácter de inicio de cadena. Cuando compares una cadena con una expresión regular, esta puede casar tanto al principio como por el medio. Por ejemplo la expresión regular "a" casaría con cualquier 'a' de la cadena. Si especificamos "^a" la expresión regular sólo casará con una 'a' que este al principio de la cadena.
yo presiso que sean caracteres alfanumericos todos los caracteres...

lo mismo para el $
  #13 (permalink)  
Antiguo 09/11/2010, 14:05
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: alluda con eregi

leíste en enlace ?... ahí sale todo
__________________
More about me...
~ @rhyudek1
~ Github
  #14 (permalink)  
Antiguo 09/11/2010, 14:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: alluda con eregi

Cita:
Iniciado por Alfonso1 Ver Mensaje
sigo sin entender para que sirven lo que marque en rojo en mis mensajes anteriores.
se te ocurrió leer los enlaces que ta han puesto una y otra ves en los mensajes anteriores?
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 09/11/2010, 14:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

y ustedes leyeron mi ultimo mensaje?, si lei sus enlaces, pero o no estoy entendiendo o entendi mal,

Cita:
no entiendo porque hay un \ al final, ¿que acaso este caracter no elimina cualquier significado que pueda tener el caracter siguiente? (es lo que entendi de los enlaces)

Cita:
^ - Carácter de inicio de cadena. Cuando compares una cadena con una expresión regular, esta puede casar tanto al principio como por el medio. Por ejemplo la expresión regular "a" casaría con cualquier 'a' de la cadena. Si especificamos "^a" la expresión regular sólo casará con una 'a' que este al principio de la cadena.
yo presiso que sean caracteres alfanumericos todos los caracteres...

lo mismo para el $ (nesesito checar todos los caracteres no solo el ultimo)
  #16 (permalink)  
Antiguo 09/11/2010, 14:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: alluda con eregi

en primer lugar no es \ sino / y dicho carácter equivale al delimitador de la expresión, en todo caso puede cambiar este delimitador (como bien dice en los enlaces)

también el $, que significa final de la cadena.... osea que también viene explicado en las referencias!!

¿pues que no sabes leer bien o donde esta la confusión?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 09/11/2010, 14:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

Cita:
Si especificamos "^a" la expresión regular sólo casará con una 'a' que este al principio de la cadena.
y como hago para que no "case" solo el primero sino todos los caracteres
  #18 (permalink)  
Antiguo 09/11/2010, 14:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: alluda con eregi

Cita:
Iniciado por Alfonso1 Ver Mensaje
y como hago para que no "case" solo el primero sino todos los caracteres
lee las referencias, ahí vienen los distintos tipos de caracteres para realizar lo que desees!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 09/11/2010, 14:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

y por que el "+" antes del "$"??????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????
  #20 (permalink)  
Antiguo 09/11/2010, 14:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Desacuerdo Respuesta: alluda con eregi

Cita:
Iniciado por Alfonso1 Ver Mensaje
y por que el "+" antes del "$"??????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????
me pregunto si ya habrías leído todo lo que te hemos sugerido leer, no es que + este antes de $ sino que el + esta después del conjunto [] cosa que ya tiene significado, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #21 (permalink)  
Antiguo 09/11/2010, 14:25
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: alluda con eregi

aaa te pasas ehhh xD!... quieres la comida masticada ?... acaso no tienes dientes ?
lo siento pero esto me supera D:
__________________
More about me...
~ @rhyudek1
~ Github
  #22 (permalink)  
Antiguo 09/11/2010, 14:29
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: alluda con eregi

Sin ser muy explícito en la ayuda, te pego el siguiente texto que se encuentra en el aporte que escribió pateketrueke :

Cita:
Cuantificadores

n* Cero o mas de n
n+ Uno o mas de n
n? Uno o ninguno de n
{n} Exactamente n ocurrencias
{n,} Al menos n ocurrencias
{,m} Hasta m ocurrencias
{n,m} Entre n y m ocurrencias (inclusivo)
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #23 (permalink)  
Antiguo 09/11/2010, 14:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

http://eltallerliterario.com.ar/wp-content/uploads/2008/02/sherlock-holmes.jpg este case es demaciado complicado

Cita:
de esta manera "[aeiou]+" si que casaría con la cadena entera.
entonces pa que hace falta un $ al final??????¡¡¡??????¿¿¿?????¿?¡¡'¡'¡''¡¿'?¿?'?
  #24 (permalink)  
Antiguo 09/11/2010, 14:45
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: alluda con eregi

Haz la siguiente prueba :

Código PHP:
Ver original
  1. $str = 'a1234567788';
  2. echo preg_match('/^[aeiou]+/', $str) ? 'Coincide' : 'No coincide';
  3. echo '<br />';
  4. echo preg_match('/^[aeiou]+$/', $str) ? 'Coincide' : 'No coincide';
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #25 (permalink)  
Antiguo 09/11/2010, 14:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: alluda con eregi

o también esto... si ponemos:
Código PHP:
preg_match('/[a-zA-Z0-9]+/''-0ab. c9_'); 
seguro se dice que es cierto, pues la expresión no implica limites de ningún tipo siendo solo -0ab. c9_ lo que se "comprende"

mientras que:
Código PHP:
preg_match('/^[a-zA-Z0-9]+$/''-0ab. c9_'); // FALSE
preg_match('/^[a-zA-Z0-9]+$/''0abc9'); // TRUE 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #26 (permalink)  
Antiguo 09/11/2010, 14:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

Cita:
Coincide
No coincide
no entiendo porque el primero coincide, si solo el primer caracter es vocal

...

en tu ejemplo pateketrueke, veo que el $ es nesesario, pero no entiendo porque.
'que quiere decir lo siguiente:
Cita:
pues la expresión no implica limites de ningún tipo siendo solo -0ab. c9_ lo que se "comprende"
  #27 (permalink)  
Antiguo 09/11/2010, 15:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: alluda con eregi

ups, me equivoque un poquito:

de la cadena -0ab. c9_ lo que se "comprende" al aplicar la expresión [a-zA-Z0-9]+, que significaría algo así como "una o mas apariciones consecutivas de cualquier numero y/o letra"

en dado caso dice que la expresión es verdadera porque 0ab cumple dicha expresión, una ves dados los limitadores de contexto se tiende a resolver de manera mas precisa...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #28 (permalink)  
Antiguo 09/11/2010, 15:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 137
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: alluda con eregi

bueno gracias pa todos, despuesde unas pruebas me quedo con esto:

$str = '0asdASD1230';
if(!preg_match('/\W+/', $str)) echo "sirve";
else echo "no sirve";

Etiquetas: alluda
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:03.