Zjištění nebo Ověření Čísla Kreditních Karet

RegexMagic—Vytvářet regulární výrazy odpovídající čísla kreditních karet,

S několika jednoduchých regulárních výrazů, můžete snadno ověřit, zda váš zákazník zadali platné číslo kreditní karty na objednávkovém formuláři. Můžete dokonce určit typ použité kreditní karty. Každý vydavatel karty má svůj vlastní rozsah čísel karet, identifikovaných prvními 4 číslicemi.

můžete použít mírně odlišný regulární výraz k nalezení čísel kreditních karet nebo číselných sekvencí, které by mohly být čísly kreditních karet, ve větších dokumentech. To může být velmi užitečné pro prokázání bezpečnostního auditu, že neodhalujete finanční údaje svých klientů nesprávně.

začneme s objednávkovým formulářem.

odstranění mezer a pomlček

prvním krokem je odstranění všech necifer z čísla karty zadaného zákazníkem. Fyzické kreditní karty mají mezery v čísle karty pro seskupení číslic, což lidem usnadňuje čtení nebo zadávání. Váš objednávkový formulář by tedy měl přijímat čísla karet s mezerami nebo pomlčkami v nich.

Chcete-li z čísla karty odstranit všechny číslice, jednoduše použijte funkci „Nahradit vše“ ve skriptovacím jazyce a vyhledejte regex + a nahraďte jej ničím. Pokud chcete pouze nahradit mezery a pomlčky, můžete použít +. Pokud tento regulární výraz vypadá divně, nezapomeňte, že ve třídě znaků je spojovník doslovný, když se vyskytuje těsně před uzavírací konzolou(nebo hned za Otevírací konzolou nebo negující stříškou).

pokud vás zajímá, k čemu je plus: to je pro výkon. Pokud má vstup po sobě jdoucí číslice, například 1= = = 2, pak + odpovídá třem znaménkům najednou a odstraní je v jedné náhradě. Bez plusu by byly zapotřebí tři náhrady. V tomto případě jsou úspory jen několik mikrosekund. Ale je to dobrý zvyk držet regex účinnost v zadní části vaší mysli. I když jsou zde úspory minimální, stejně tak je snaha o psaní extra plus.

ověření čísel kreditních karet v objednávkovém formuláři

ověření čísel kreditních karet je ideální práce pro regulární výrazy. Jsou to jen sekvence 13 na 16 číslice, s několika konkrétními číslicemi na začátku, které identifikují vydavatele karty. Pomocí konkrétních regulárních výrazů níže můžete upozornit zákazníky, když se pokusí použít druh karty, kterou nepřijímáte, nebo směrovat objednávky pomocí různých karet různým procesorům. Všechny tyto regexy byly převzaty z knihovny RegexBuddy.

  • vízum: ^4{12}(?:{3})?$ Všechna čísla karet Visa začínají 4. Nové karty mají 16 číslic. Staré karty mají 13.
  • MasterCard: ^(?:5{2}|222|22|2{2}|27|2720){12}$ Čísla MasterCard začínají buď čísly 51 až 55, nebo čísly 2221 až 2720. Všechny mají 16 číslic.
  • American Express: ^3{13} $ čísla karet American Express začínají 34 nebo 37 a mají 15 číslic.
  • Klub Hostů: ^3(?: 0/) {11}$ Diners Club Card čísla začínají 300 přes 305, 36 nebo 38. Všechny mají 14 číslic. Existují Diners klubové karty, které začínají 5 a mají 16 číslic. Jedná se o společný podnik mezi Diners Club a MasterCard, a měly by být zpracovány jako MasterCard.
  • Discover: ^6(?:011/5{2}){12}$ Objevte čísla karet začínají 6011 nebo 65. Všechny mají 16 číslic.
  • JCB: ^(?:2131/1800/35\d{3})\d{11}$ JCB karty začínající 2131 nebo 1800 mají 15 číslic. Karty JCB začínající na 35 mají 16 číslic.

pokud chcete pouze zkontrolovat, zda číslo karty vypadá platně, bez určení značky, můžete kombinovat výše uvedených šest regexů pomocí střídání. Nezachytitelná skupina staví kotvy mimo střídání. Volné mezery umožňují komentáře a regulární výraz, aby odpovídal šířce této stránky.

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

Tyto regulární výrazy se snadno chytit čísla, která jsou neplatné, protože zákazník vstoupil příliš mnoho nebo příliš málo číslic. Nebudou chytit čísla s nesprávnými číslicemi. K tomu musíte postupovat podle luhnova algoritmu, který nelze provést pomocí regulárního výrazu. A samozřejmě, i když je číslo matematicky platné, neznamená to, že byla vydána karta s tímto číslem nebo že na účtu jsou peníze. Výhodou nebo regulárním výrazem je, že jej můžete dát do trochu JavaScriptu, abyste okamžitě zkontrolovali zjevné chyby, místo aby zákazník čekal 30 sekund, než procesor vaší kreditní karty selže. A pokud váš procesor karty účtuje za neúspěšné transakce, budete opravdu chtít implementovat jak regex, tak validaci Luhn.

Hledání Čísla Kreditních Karet v Dokumentech,

S dvě jednoduché změny, můžete použít některý z výše uvedených regexes najít čísla karet ve větších dokumentech. Jednoduše nahraďte stříšku a dolar hranicí slov jako v \b4{12}(?:{3})?\b.

pokud plánujete hledat velký dokumentový server, jednodušší regulární výraz urychlí vyhledávání. Pokud vaše společnost nepoužívá 16místná čísla pro jiné účely, budete mít několik falešných pozitiv. Regulární výraz \b\d{13,16}\b najde libovolnou sekvenci 13 až 16 číslic.

při hledání pevného disku plného souborů nemůžete nejprve odstranit mezery a pomlčky, jako byste mohli při ověřování jednoho čísla karty. Chcete-li najít čísla karet s mezerami nebo pomlčkami v nich, použijte \b(?: \d*?) {13,16}\b. tento regulární výraz umožňuje libovolné množství mezer a pomlček kdekoli v čísle. Tohle je opravdu jediný způsob. Visa a MasterCard dát číslice v sadách 4, zatímco Amex a Discover použití skupiny 4, 5 a 6 číslic. Lidé vstupující do čísel mohou mít ještě jiné představy.

udělejte dar

ušetřil vám tento web cestu do knihkupectví? Udělejte prosím příspěvek na podporu tohoto webu, a získáte celoživotní přístup k tomuto webu bez reklam!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post Stát Veterinární Technik ve Wisconsinu
Next post Proces Umění vs. Produktu Umění v Raném Dětství Vzdělání