Skip to content

Instantly share code, notes, and snippets.

View luisenriquech's full-sized avatar

Luis Que Carbajal luisenriquech

View GitHub Profile
@luisenriquech
luisenriquech / gist:f9f6b9274e3bba91980c013c074d4617
Created May 2, 2022 18:48
Regex CURP (palabras altinsonantes)
Expresión regular proporcionada por el SAT
^[A-Z][AEIOUX][A-Z]{2}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[MH]([ABCMTZ]S|[BCJMOT]C|[CNPST]L|[GNQ]T|[GQS]R|C[MH]|[MY]N|[DH]G|NE|VZ|DF|SP)[BCDFGHJ-NP-TV-Z]{3}[0-9A-Z][0-9]$
Expresión regular que valida palabras altisonantes y años bisiestos, además de las validaciones comunes
^\b(?!((([Pp][Ii]){2})|(([Pp][Oo]){2})|([MmLl][Oo][CcKk][Oo])|((([VvBb][Aa])|([Ll][Oo]))([CcKk][Aa]))|((([Ff][Aa])|([Ll][Ii])|([Mm][Uu]))([Ll][Oo]))|([Nn][Aa][Cc][AaOo])|([Tt][Ee][Tt][Aa])|([Ss][Ee][Nn][Oo])|([Rr][Oo][Bb][AaEeOo])|([Vv][Aa][Gg][AaOo])|([CcKk][Aa][CcKkGg][AaOo])|([BbGgVvWw][Uu][Ee][YyIi])|([Kk][Oo](([Gg][Ee])|([Jj][Oo])))|([CcKk][Oo](([Gg][EeIi])|([Ll][Aa])|([Jj][AaEeIiOo])))|([QqCcKk][Uu][Ll][Oo])|((([Ff][Ee])|([Jj][Oo])|([Pp][UuIi]))[Tt][Oo])|([Rr][Uu][Ii][Nn])|((([Pp][Uu])|([JjGg][Ee])|([Rr][Aa]))[Tt][Aa])|([Pp][Ee](([Dd][Oo])|([Dd][Aa])|([Nn][Ee])))|([Mm](([Aa][Mm][OoEe])|([EeIi][Aa][SsRr])|([Ii][Oo][Nn])|([Uu][Ll][Aa])|([Ee][Oo][Nn])))))[A-Za-z][AEIOUXaeioux][A
@luisenriquech
luisenriquech / gist:cf6148e63194ce96bd560e85ad1690ba
Last active May 2, 2022 17:40
4 Diferentes formas de validar un RFC
Versión oficial del SAT
^[A-Z&Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]$
Versión reducida de la versión oficial del SAT
^[A-Za-zñÑ&]{3,4}\d{6}\w{3}$
Versión siguiendo al pie de la letra las instrucciones del SAT, esta versión no permite la entrada de fechas incorrectas ni de años bisiestos erróneos , de igual manera impide un RFC con palabras altisonantes, el problema es que en la práctica, existen RFC con palabras altisonantes y con fechas mal formadas.
^(((?!(([CcKk][Aa][CcKkGg][AaOo])|([Bb][Uu][Ee][YyIi])|([Kk][Oo](([Gg][Ee])|([Jj][Oo])))|([Cc][Oo](([Gg][Ee])|([Jj][AaEeIiOo])))|([QqCcKk][Uu][Ll][Oo])|((([Ff][Ee])|([Jj][Oo])|([Pp][Uu]))[Tt][Oo])|([Rr][Uu][Ii][Nn])|([Gg][Uu][Ee][Yy])|((([Pp][Uu])|([Rr][Aa]))[Tt][Aa])|([Pp][Ee](([Dd][Oo])|([Dd][Aa])|([Nn][Ee])))|([Mm](([Aa][Mm][OoEe])|([Ee][Aa][SsRr])|([Ii][Oo][Nn])|([Uu][Ll][Aa])|([Ee][Oo][Nn])|([Oo][Cc][Oo])))))[A-Za-zñÑ&][aeiouAEIOUxX]?[A-Za-zñÑ&]{2}(((([02468][048])|([13579][26]))0229)|(\d{2})((02((0[1-9])|1\d|2[0-8]))|(((