Markdown Converter
Agent skill for markdown-converter
**Prompt:**
Sign in to like and favorite skills
Prompt:
Como identificar as seguintes bandeiras de cartão de crédito pelo número:
Resposta:
Para identificar a **bandeira de um cartão de crédito pelo número**, você pode usar os **prefixos (BIN – Bank Identification Number)** e o **comprimento do número**. Abaixo estão os padrões típicos de identificação para cada uma das bandeiras que você mencionou: --- ### ✅ **1. MasterCard** * **Prefixo (começa com):** `51–55`, ou `2221–2720` (nova faixa) * **Comprimento:** 16 dígitos --- ### ✅ **2. Visa** * **Prefixo:** `4` * **Comprimento:** 13 ou 16 dígitos (mais comum é 16) --- ### ✅ **3. American Express (Amex)** * **Prefixo:** `34` ou `37` * **Comprimento:** 15 dígitos --- ### ✅ **4. Diners Club** * **Prefixo:** `300–305`, `36`, ou `38` * **Comprimento:** 14 dígitos --- ### ✅ **5. Discover** * **Prefixo:** `6011`, `622126–622925`, `644–649`, `65` * **Comprimento:** 16 dígitos --- ### ✅ **6. enRoute** * **Prefixo:** `2014` ou `2149` * **Comprimento:** 15 dígitos --- ### ✅ **7. JCB (Japan Credit Bureau)** * **Prefixo:** `3528–3589` * **Comprimento:** 16 dígitos --- ### ✅ **8. Voyager** * **Prefixo:** `8699` * **Comprimento:** 15 dígitos --- ### ✅ **9. Hipercard** * **Prefixo:** geralmente `3841`, mas varia * **Comprimento:** 13, 16 ou 19 dígitos --- ### ✅ **10. Aura** * **Prefixo:** Varia (não é publicamente padronizado) * **Comprimento:** Geralmente 16 dígitos * **Obs:** Bandeira menos comum, normalmente usada no Brasil --- Se quiser, posso te ajudar a montar uma **função para identificar a bandeira automaticamente a partir do número do cartão**. Deseja isso em alguma linguagem específica (por exemplo, Python ou JavaScript)?
Prompt:
Crie uma função em swift para identificar a bandeira de um cartão de crédito.
Para identificar a bandeira de um cartão de crédito pelo número, você pode usar os prefixos (BIN – Bank Identification Number) e o comprimento do número. Abaixo estão os padrões típicos de identificação para cada uma das bandeiras:
### ✅ **1. MasterCard** * **Prefixo (começa com):** `51–55`, ou `2221–2720` (nova faixa) * **Comprimento:** 16 dígitos --- ### ✅ **2. Visa** * **Prefixo:** `4` * **Comprimento:** 13 ou 16 dígitos (mais comum é 16) --- ### ✅ **3. American Express (Amex)** * **Prefixo:** `34` ou `37` * **Comprimento:** 15 dígitos --- ### ✅ **4. Diners Club** * **Prefixo:** `300–305`, `36`, ou `38` * **Comprimento:** 14 dígitos --- ### ✅ **5. Discover** * **Prefixo:** `6011`, `622126–622925`, `644–649`, `65` * **Comprimento:** 16 dígitos --- ### ✅ **6. enRoute** * **Prefixo:** `2014` ou `2149` * **Comprimento:** 15 dígitos --- ### ✅ **7. JCB (Japan Credit Bureau)** * **Prefixo:** `3528–3589` * **Comprimento:** 16 dígitos --- ### ✅ **8. Voyager** * **Prefixo:** `8699` * **Comprimento:** 15 dígitos --- ### ✅ **9. Hipercard** * **Prefixo:** geralmente `3841`, mas varia * **Comprimento:** 13, 16 ou 19 dígitos --- ### ✅ **10. Aura** * **Prefixo:** Varia (não é publicamente padronizado) * **Comprimento:** Geralmente 16 dígitos * **Obs:** Bandeira menos comum, normalmente usada no Brasil
Resposta:
Aqui está uma função em Swift que identifica a bandeira de um cartão de crédito com base no número informado:
func identificarBandeira(cartao: String) -> String { let numero = cartao.replacingOccurrences(of: "\\s|-", with: "", options: .regularExpression) let comprimento = numero.count func prefixo(_ prefixos: [ClosedRange<Int>]) -> Bool { for range in prefixos { let tamanho = String(range.lowerBound).count if let prefixo = Int(numero.prefix(tamanho)), range.contains(prefixo) { return true } } return false } if comprimento == 16 && ( prefixo([51...55]) || prefixo([2221...2720]) ) { return "MasterCard" } if (comprimento == 13 || comprimento == 16) && numero.hasPrefix("4") { return "Visa" } if comprimento == 15 && (numero.hasPrefix("34") || numero.hasPrefix("37")) { return "American Express" } if comprimento == 14 && ( prefixo([300...305]) || numero.hasPrefix("36") || numero.hasPrefix("38") ) { return "Diners Club" } if comprimento == 16 && ( numero.hasPrefix("6011") || prefixo([622126...622925]) || prefixo([644...649]) || numero.hasPrefix("65") ) { return "Discover" } if comprimento == 15 && (numero.hasPrefix("2014") || numero.hasPrefix("2149")) { return "enRoute" } if comprimento == 16 && prefixo([3528...3589]) { return "JCB" } if comprimento == 15 && numero.hasPrefix("8699") { return "Voyager" } if [13, 16, 19].contains(comprimento) && numero.hasPrefix("3841") { return "Hipercard" } if comprimento == 16 { return "Aura" // Assumimos Aura por exclusão } return "Bandeira desconhecida" }
let bandeira = identificarBandeira(cartao: "4111 1111 1111 1111") print(bandeira) // Visa
Quer que eu transforme isso em uma extensão de
String para facilitar o uso?
Prompt: Como você reescreveria a função identificarBandeira utilizando regex?
Resposta:
import Foundation func identificarBandeira(cartao: String) -> String { let numero = cartao.replacingOccurrences(of: "\\s|-", with: "", options: .regularExpression) let padroes: [(String, String)] = [ ("^5[1-5][0-9]{14}$|^2(2[2-9][1-9]|[3-6][0-9]{2}|7[01][0-9]|720)[0-9]{12}$", "MasterCard"), ("^4[0-9]{12}(?:[0-9]{3})?$", "Visa"), ("^3[47][0-9]{13}$", "American Express"), ("^3(?:0[0-5]|[68][0-9])[0-9]{11}$", "Diners Club"), ("^6(?:011|5[0-9]{2}|4[4-9][0-9]|22[1-9][0-9]{2}|22[2-9][0-9]{2}|22[3-9][0-9]{2}|22[4-9][0-9]{2}|22[5-9][0-9]{2}|22[6-9][0-9]{2}|22[7-9][0-9]{2}|22[8-9][0-9]{2}|22[9-9][0-9]{2})[0-9]{12}$", "Discover"), ("^2014|2149[0-9]{11}$", "enRoute"), ("^35(?:2[89]|[3-8][0-9])[0-9]{12}$", "JCB"), ("^8699[0-9]{11}$", "Voyager"), ("^3841[0-9]{9,15}$", "Hipercard") ] for (regex, bandeira) in padroes { if let _ = numero.range(of: regex, options: .regularExpression) { return bandeira } } return "Bandeira desconhecida" }
Prompt: Escreva o arquivo README para o projeto. Informações que o arquivo deve conter:
Resposta:
Claro! Aqui está um exemplo de arquivo
README.md que você pode usar para o seu projeto:
# Identificador de Bandeira de Cartão de Crédito Este projeto foi desenvolvido como parte do **bootcamp Microsoft 50 Anos - GitHub Copilot**, oferecido pela plataforma **DIO (Digital Innovation One)**. ## Objetivo O objetivo principal do projeto é implementar uma função capaz de identificar a **bandeira de um cartão de crédito** a partir do número do cartão. O desenvolvimento da função foi guiado com o apoio do **GitHub Copilot** e do **ChatGPT**, destacando o uso de ferramentas de IA para auxiliar na programação. ## Tecnologias e Ferramentas Utilizadas - **GitHub Copilot** – para sugestão de código e aceleração do desenvolvimento - **ChatGPT** – para auxílio conceitual, esclarecimento de dúvidas e suporte durante o desenvolvimento - **Python** (ou outra linguagem, se aplicável) – linguagem utilizada para a implementação da função ## Como Funciona A função analisa os primeiros dígitos do número do cartão (prefixos BIN/IIN) e identifica a bandeira correspondente com base em padrões conhecidos de cartões como: - Visa - MasterCard - American Express - Discover - entre outros ## Como Executar 1. Clone o repositório: ```bash git clone https://github.com/seu-usuario/nome-do-repositorio.git ``` 2. Navegue até o diretório do projeto: ```bash cd nome-do-repositorio ``` 3. Execute o script principal (exemplo em Python): ```bash python identificar_bandeira.py ``` ## Contribuição Sinta-se à vontade para abrir issues ou enviar pull requests para melhorias ou sugestões. --- Desenvolvido com 💙 durante o bootcamp Microsoft 50 Anos - GitHub Copilot. ``` Quer que eu adapte o conteúdo conforme a linguagem usada ou o nome real do repositório? ```