Foros del Web » Programando para Internet » PHP »

Consulta Expresiones Regulares

Estas en el tema de Consulta Expresiones Regulares en el foro de PHP en Foros del Web. Hola a todos les escribo para hacerles 2 preguntas sobre unas expresiones regulares que me estan dando trabajo jeje. La primera es la siguiente deseo ...
  #1 (permalink)  
Antiguo 25/04/2013, 07:22
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Consulta Expresiones Regulares

Hola a todos les escribo para hacerles 2 preguntas sobre unas expresiones regulares que me estan dando trabajo jeje.

La primera es la siguiente deseo verificar que una cadena pueda o no empezar con el simbolo +, el tema es que no me funciona y si cambio el caracter + por un - si funciona por ejemplo:

Código PHP:
Ver original
  1. $expresion = "/^\+?[0-9]+$/";
  2. $texto = 2050;
  3. $texto_mas = +2050;
  4.  
  5. echo preg_match($expresion,$texto); // DEVUELVE 1
  6. echo preg_match($expresion,$texto_mas ); // DEVUELVE 0
  7.  
  8. $expresion = "/^\-?[0-9]+$/";
  9. $texto = 2050;
  10. $texto_mas = -2050;
  11.  
  12. echo preg_match($expresion,$texto); // DEVUELVE 1
  13. echo preg_match($expresion,$texto_mas ); // DEVUELVE 1

----------------------------------

Por otro lado queria saber como puedo limitar dentro de un corchete la cantidad de veces que aparezca un caracter, estoy validando un telefono y deseo que el guion medio aparezca como maximo 2 veces por ej:


Código PHP:
Ver original
  1. $expresion = "/^[0-9\-{0,2}]+$/";
donde \-{0,2} vendria siendo que el guion aparezca de 0 a 2 veces pero por alguna razon no funciona.

---------------------------------------

Bueno mis dudas eran estas y queria saber si alguien podria echarme una mano al respecto je desde ya muchas gracias!.
  #2 (permalink)  
Antiguo 25/04/2013, 08:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Consulta Expresiones Regulares

Me parece que la expresión no está mal, pero tus datos de prueba si:
Código PHP:
$texto_mas = +2050;
echo 
$texto_mas
Ahí no estás especificando de ningún modo que se trate de una cadena, el operador + se evalúa junto al número y resulta en un 2050 absoluto.

Pero si usas comillas:
Código PHP:
$texto_mas '+2050';
echo 
$texto_mas
Ahí si tienes el signo de mas, es una cadena.

En el otro caso que decías funciona, es que un número negativo si conserva su signo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: expresiones, regulares
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 05:57.