Constatação ou Verificação de Números de Cartão de Crédito

RegexMagic—Gerar a correspondência de expressões regulares números de cartão de crédito

Com algumas expressões regulares simples, você pode facilmente verificar se o seu cliente inserido um cartão de crédito válido em seu formulário de pedido. Você pode até determinar o tipo de cartão de crédito que está sendo usado. Cada emitente de cartão tem a sua própria gama de números de cartão, identificados pelos primeiros 4 dígitos.

pode usar uma expressão regular ligeiramente diferente para encontrar números de cartão de crédito, ou sequências de números que podem ser números de cartão de crédito, dentro de documentos maiores. Isso pode ser muito útil para provar em uma auditoria de segurança que você não está expondo indevidamente os detalhes financeiros de seus clientes.Vamos começar com o formulário de encomenda.

espaços de remoção e traços

o primeiro passo é remover todos os não-dígitos do número de cartão introduzido pelo cliente. Cartões de crédito físicos têm espaços dentro do número do cartão para agrupar os dígitos, tornando mais fácil para os seres humanos para ler ou digitar. Assim, o seu formulário de pedido deve aceitar números de cartão com espaços ou traços neles.

para remover todos os não-dígitos do número do cartão, basta usar a função “Substituir tudo” em sua linguagem de scripting para procurar o regex + e substituí-lo por nada. Se você só quiser substituir espaços e traços, você poderia usar +. Se este vértice parece estranho, lembre-se que em uma classe de caracteres, o hífen é um literal quando ocorre logo antes do parêntesis de fechamento (ou logo após o parêntesis de abertura ou negando o cuidado).

se você está se perguntando para que o mais é para: isso é para o desempenho. Se a entrada tem não-dígitos consecutivos, como 1===2, então + corresponde aos três sinais iguais de uma vez e os apaga em uma substituição. Sem o mais, seriam necessárias três substituições. Neste caso, as economias são apenas alguns microssegundos. Mas é um bom hábito manter a eficiência regexo no fundo da mente. Embora as economias são mínimas aqui, assim é o esforço de digitar o Extra plus.

validar números de cartão de crédito no seu formulário de encomenda

validar números de cartão de crédito é o trabalho ideal para expressões regulares. São apenas uma sequência de 13 a 16 dígitos, com alguns dígitos específicos no início que identificam o emissor do cartão. Você pode usar as expressões regulares específicas abaixo para alertar os clientes quando eles tentam usar um tipo de cartão que você não aceita, ou para encaminhar ordens usando cartões diferentes para diferentes processadores. Todas estas expressões foram tiradas da Biblioteca da RegexBuddy.Visto::{3})? Todos os números do cartão Visa começam com um 4. As novas cartas têm 16 dígitos. Os cartões antigos têm 13.

  • MasterCard: ^(?:5{2}|222|22|2{2}|27|2720){12}$ os números de MasterCard ou começam com os números 51 a 55 ou com os números 2221 a 2720. Todos têm 16 dígitos.
  • American Express: ^3{13} Os números de cartão American Express começam com 34 ou 37 e têm 15 dígitos.
  • Diners Club: ^3 (?: 0|){11}$ Diners números de Cartão Do Clube começam com 300 a 305, 36 ou 38. Todos têm 14 dígitos. Há cartões Diners Club que começam com 5 e têm 16 dígitos. Estes são uma joint venture entre Diners Club e MasterCard, e devem ser processados como um MasterCard.
  • descubra: ^6(?:011/5{2}){12}$ Descubra os números das cartas começam com 6011 ou 65. Todos têm 16 dígitos.
  • JCB: ^(?: 2131/1800/35\d{3})\D{11} Os cartões JCB a partir de 2131 ou 1800 têm 15 dígitos. Os cartões JCB a partir de 35 têm 16 dígitos.
  • se apenas quiser verificar se o número do cartão parece válido, sem determinar a marca, pode combinar os seis vértices acima usando alternância. Um grupo sem captura coloca as âncoras fora da alternância. O espaço livre permite comentários e a expressão regular para caber a largura desta página.

    ^(?:4{12}(?:{3})? # Visto
    | (?:5{2} # MasterCard
    | 222/22/2{2}|27|2720){12}
    | 3{13} # American Express
    | 3(?: 0|){11} # Diners Club
    | 6 (?:011/5{2}){12} # Discover
    | (?: 2131/1800/35\d{3})\D{11} # JCB
    )$

    estas expressões regulares irão facilmente pegar números que são inválidos porque o cliente digitou muitos ou muito poucos dígitos. Não apanharão números com dígitos incorrectos. Para isso, você precisa seguir o algoritmo de Luhn, que não pode ser feito com um regex. E é claro, mesmo que o número seja matematicamente válido, isso não significa que um cartão com este número foi emitido ou que há dinheiro na conta. O benefício ou a expressão regular é que você pode colocá-lo em um pouco de JavaScript para verificar instantaneamente por erros óbvios, em vez de fazer o cliente esperar 30 segundos para o seu processador de cartão de crédito para falhar a ordem. E se o teu processador de cartão cobrar por transacções falhadas, vais querer implementar tanto a regex como a validação Luhn.

    encontrar números de cartão de crédito em documentos

    com duas simples modificações, você poderia usar qualquer um dos números de cartão acima para encontrar números em documentos maiores. Basta substituir o caret e o dólar por uma palavra limite como em \b4{12}(?:{3})?\B.

    se estiver a planear procurar num servidor de documentos grande, uma expressão regular mais simples irá acelerar a pesquisa. A menos que a sua empresa use números de 16 dígitos para outros fins, terá alguns falsos positivos. A expressão regular \b\d{13,16}\B irá encontrar qualquer sequência de 13 a 16 dígitos.

    ao procurar um disco rígido cheio de ficheiros, não pode remover espaços e traços em primeiro lugar como pode ao validar um único número de cartão. Para encontrar números de cartão com espaços ou traços neles, use \b (?: \d*?) {13,16} \ B. Esta expressão regular permite qualquer quantidade de espaços e traços em qualquer ponto do número. Esta é realmente a única maneira. Visa e MasterCard colocam dígitos em conjuntos de 4, enquanto Amex e descobrir grupos de uso de 4, 5 e 6 dígitos. As pessoas que entram nos números ainda podem ter ideias diferentes.

    Faça uma doação

    este site apenas lhe poupou uma viagem à livraria? Por favor, faça uma doação para apoiar este site, e você terá uma vida de acesso livre de anúncios a este site!

    Deixe uma resposta

    O seu endereço de email não será publicado.

    Previous post Becoming a Veterinary Technician in Wisconsin
    Next post Process Art vs. Product Art in Early Childhood Education