Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Chatbox

    Lembre-se de ler as nossas regras!
    Load More
    You don't have permission to chat.
iJhefe

[JavaScript] Verificação de CPF e Cartão de Crédito

Recommended Posts

Olá, hoje de madrugada precisei fazer isso, então para ajudar quem precise, ta ai o código. Sem muitos comentários, eu fiz ele bem rápido ( e até prático para usar ).

 

let
    CreditCard = {

        Cards : {
            Visa: /^4[0-9]{12}(?:[0-9]{3})/,
            Mastercard: /^5[1-5][0-9]{14}/,
            Amex: /^3[47][0-9]{13}/,
            DinersClub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}/,
            Discover: /^6(?:011|5[0-9]{2})[0-9]{12}/,
            JCB: /^(?:2131|1800|35\d{3})\d{11}/
        },
        Sanitize: (nr) => {
        	return nr.replace(/[^\d]+/g, '');
        },

        Validate: (nr) => {

            for (let Card in CreditCard.Cards) if (nr.match(CreditCard.Cards[Card]))
                return {success: true, type: Card, number: nr};

            return false;

        }
    },
    CPF = {
        Number: "",
        unSanitized: "",
        Sanitize: () => {

            // Salvar valor inicial do CPF
            CPF.unSanitized = CPF.Number;

            // Setar valor para validação
            CPF.Number = CPF.Number.replace(/[^\d]+/g, '');

        },
        Validate: () => {

            CPF.Sanitize();

            let Soma;
            let Resto;
            Soma = 0;
            if (CPF.Number == "00000000000") return false;

            for (i = 1; i <= 9; i++) Soma = Soma + parseInt(CPF.Number.substring(i - 1, i)) * (11 - i);
            Resto = (Soma * 10) % 11;

            if ((Resto == 10) || (Resto == 11)) Resto = 0;
            if (Resto != parseInt(CPF.Number.substring(9, 10))) return false;

            Soma = 0;
            for (i = 1; i <= 10; i++) Soma = Soma + parseInt(CPF.Number.substring(i - 1, i)) * (12 - i);
            Resto = (Soma * 10) % 11;

            if ((Resto == 10) || (Resto == 11)) Resto = 0;
            if (Resto != parseInt(CPF.Number.substring(10, 11))) return false;
            return true;
        }
    }

 

Para usar o validator de CPF, basta inserir o número do CPF -> CPF.Number = "###.###.###-##", e checar se é válido com CPF.Validate().

Para usar o CreditCard, basta usar CreditCard.Validate('NUMERO'), caso precise tornar o número válido, use o CreditCard.Sanitize('VALUE').

 

Caso ache esse conteúdo útil, curte e comenta, ai posso trazer mais códigos de JavaScript que se aplicam a vida real.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×