Página 1 de 1

Validacion del RFC incorrecto en el xsd del sat

Publicado: Vie Jun 08, 2012 5:06 pm
por Stream
Hola,
He encontrado una validacion incorrecta en el xsd del sat respecto a la v3.2 que se encuentra en

http://www.sat.gob.mx/cfd/3/cfdv32.xsd

La cadena de la expresion regular es la siguiente:

[A-Z,Ñ,&]{3,4}[0-9]{2}[0-1][0-9][0-3][0-9][A-Z,0-9]?[A-Z,0-9]?[0-9,A-Z]?

La cual es incorrecta debido que está permitiendo el ingreso de cada uno de los caracteres & en lugar de validar el ampersand en si (&)

Pongo aqui una regex mejorada que podria ayudar a resolver el problema, como nuestro pequeño aporte para mejorar las validaciones =)

^([A-ZÑ\x26]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1]))([A-Z\d]{3})?$

Cuales son las ventajas de esta regex en comparacion con la que está en xsd del sat:

Permite el ingreso del caracter ampersand (&) correctamente.
Valida desde 00 hasta 99 años
Valida meses de 01 a 12
Valida dias de 01 a 31
Opcional el ingreso de la homoclave.

Desarrollada por InvoiceOne.com.mx

Espero les sirva de ayuda =)

Un Saludo amigos!

Re: Validacion del RFC incorrecto en el xsd del sat

Publicado: Vie Jun 08, 2012 5:14 pm
por Stream
Hola de nuevo,

En la regex anterior, la homoclave podría ser opcional, pero con la siguiente regex, es requerida:

^([A-ZÑ\x26]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$

Espero le sirva a alguien,

Saludos

Re: Validacion del RFC incorrecto en el xsd del sat

Publicado: Vie Jun 08, 2012 6:37 pm
por Dado
Stream escribió:Hola de nuevo,

En la regex anterior, la homoclave podría ser opcional, pero con la siguiente regex, es requerida:

^([A-ZÑ\x26]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$

Espero le sirva a alguien,

Saludos
Apenas iba a echarte pleito (de broma) :P

Segun el Anexo 20 el RFC debe ser de 12 a 13 caracteres, eso indica que la homoclave es obligatoria

Re: Validacion del RFC incorrecto en el xsd del sat

Publicado: Sab Jun 09, 2012 9:57 am
por naringas
Y aquí una expresion regular (sacada de django.contrib.localflavor.mx.forms) que valida hasta la fecha y si el mes es de 30 o 31 días.

Código: Seleccionar todo

^([A-Z&Ññ]{3}|[A-Z][AEIOU][A-Z]{2})\d{2}((01|03|05|07|08|10|12)(0[1-9]|[12]\d|3[01])|02(0[1-9]|[12]\d)|(04|06|09|11)(0[1-9]|[12]\d|30))([A-Z0-9]{2}[0-9A])?$
(la homoclave es opcional en esta expresión)

Re: Validacion del RFC incorrecto en el xsd del sat

Publicado: Dom Jul 22, 2012 12:34 pm
por crixus
Según yo, la homoclave si es obligatoria.