Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Expresion regular para enteros positivos no me valida

Estas en el tema de Expresion regular para enteros positivos no me valida en el foro de PHP en Foros del Web. Hola, llevo rato tratando de encontrar donde esta el fallo y no lo logro por lo cual acudo a la ayuda de ustedes. Estoy definiendo ...
  #1 (permalink)  
Antiguo 12/03/2013, 17:20
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 9 meses
Puntos: 1
Expresion regular para enteros positivos no me valida

Hola, llevo rato tratando de encontrar donde esta el fallo y no lo logro por lo cual acudo a la ayuda de ustedes. Estoy definiendo una funcion postValidator en Symfony 1.4.20 de la siguiente forma:

Código PHP:
$this->validatorSchema->setPostValidator(
                new 
sfValidatorCallback(array('callback' => array($this'checkFields')))
); 
Y este es el validador:
Código PHP:
public function checkFields($validator$values) {
        if (!empty(
$values['importe_comprometido']) && preg_match('^[1-9]{1,6}$'$values['importe_comprometido']) === TRUE) {
            return 
$values;
        } else {
            throw new 
sfValidatorError($validator'El importe solo acepta números enteros y positivos');
        }

La cuestion es que siempre me lleva al errror y nunca me deja pasar. Estoy probando con un numero entero positivo, por ejemplo 6 o 4 o 100 etc, probre la expresion regular aqui y funciona perfectamente, que estoy haciendo mal?

Saludos
__________________
Reynier Perez Mira
Skype: reynierpm
Site: http://www.reynierpm.com
  #2 (permalink)  
Antiguo 12/03/2013, 17:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Expresion regular para enteros positivos no me valida

La expresión es definitivamente inválida para PHP-PCRE, en su misma sintaxis, te hacen falta los delimitadores de la expresión.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/03/2013, 17:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Expresion regular para enteros positivos no me valida

Cuales serian esos? Las barras invertidas?
__________________
Reynier Perez Mira
Skype: reynierpm
Site: http://www.reynierpm.com
  #4 (permalink)  
Antiguo 12/03/2013, 17:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Expresion regular para enteros positivos no me valida

En PHP-PCRE el delimitador es cualquier carácter siempre y cuando no se use en la expresión, consulta la referencia de PHP si tienes alguna duda.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/03/2013, 17:32
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Expresion regular para enteros positivos no me valida

Hmmm lei aqui http://www.php.net/manual/es/regexp....delimiters.php pero igual no me queda claro que es lo que esta mal en la expresion que estoy usando, segun yo ahi dice que lo que se escriba debe comenzar por un numero que este entre 1-9 y que no posea mas de 6 digitos, esta mal?
__________________
Reynier Perez Mira
Skype: reynierpm
Site: http://www.reynierpm.com
  #6 (permalink)  
Antiguo 12/03/2013, 18:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Expresion regular para enteros positivos no me valida

La expresión per se está bien, sin embargo la sintaxis está incompleta para PHP-PCRE.

Cita:
/^[1-9]{1,6}$/
Aquí están los separadores, pon atención a la documentación, por favor.

Lo que no entiendo es, siendo el manual tan claro y en español no entiendas a lo que se refiere, y peor si tienes buenos ejemplos.
Cita:
/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
¿Fácil verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 12/03/2013, 18:08
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Expresion regular para enteros positivos no me valida

Asi la estuve probando y no me funcionaba cambie el uso al validador de Symfony sfValidatorRegex() y ahora si me funciona correctamente

Saludos y gracias
__________________
Reynier Perez Mira
Skype: reynierpm
Site: http://www.reynierpm.com

Etiquetas: expresiones_regulares, symfony, validacion
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:52.