Luottokorttinumeroiden löytäminen tai tarkistaminen

RegexMagic-luo säännöllisiä lausekkeita, jotka vastaavat luottokorttinumeroita

muutamalla yksinkertaisella säännöllisellä lausekkeella voit helposti tarkistaa, onko asiakkaasi syöttänyt voimassa olevan luottokorttinumeron tilauslomakkeeseen. Voit jopa määrittää, millaista luottokorttia käytetään. Jokaisella kortin myöntäjällä on oma korttinumerovalikoimansa, jonka tunnistaa 4 ensimmäisestä numerosta.

voit käyttää hieman erilaista säännöllistä lauseketta löytääksesi luottokorttinumeroita tai numerosarjoja, jotka saattavat olla luottokorttinumeroita, suuremmista asiakirjoista. Tämä voi olla erittäin hyödyllistä todistaa tietoturvatarkastuksessa, että et paljasta väärin asiakkaidesi taloudellisia tietoja.

aloitamme tilauslomakkeella.

Strippausvälit ja viivat

ensimmäinen vaihe on poistaa kaikki ei-numerot asiakkaan antamasta kortin numerosta. Fyysisissä luottokorteissa on korttinumeron sisällä välilyöntejä numeroiden ryhmittelyä varten, mikä helpottaa ihmisten lukemista tai kirjoittamista. Joten tilauslomakkeesi pitäisi hyväksyä korttinumerot välilyönneillä tai viivoilla.

jos haluat poistaa kaikki ei-numerot kortin numerosta, käytä komentosarjakielen” replace all ” – toimintoa etsiäksesi regex + ja korvataksesi sen tyhjällä. Jos haluat vain korvata välilyöntejä ja viivoja, voit käyttää+: a. Jos tämä regex näyttää oudolta, muista, että merkkiluokassa väliviivakin on kirjaimellinen, kun se tapahtuu juuri ennen sulkukiinnikettä (tai heti avauskiinnikkeen jälkeen tai tyhjäkäynnin jälkeen).

jos mietit, mistä plussaa: se on suorituskyvystä. Jos tulossa on peräkkäisiä ei-numeroita, kuten 1= = = 2, niin + vastaa kolmea yhtä suurta merkkiä kerralla ja poistaa ne yhdellä vaihdolla. Ilman plussaa tarvittaisiin kolme korvaajaa. Tässä tapauksessa säästö on vain muutamia mikrosekunteja. Mutta on hyvä tapa pitää regex-tehokkuus mielessä. Vaikka säästöt ovat minimaalisia täällä, niin on vaivaa kirjoittamalla extra plus.

luottokorttinumeroiden validointi tilauslomakkeella

luottokorttinumeroiden validointi on ihanteellinen työ säännöllisiin lausekkeisiin. Ne ovat vain 13-16 numeron sarja, jonka alussa on muutama tietty numero, jotka tunnistavat kortin myöntäjän. Voit käyttää alla olevia säännöllisiä lausekkeita varoittaaksesi asiakkaita, kun he yrittävät käyttää sellaista korttia, jota et hyväksy, tai reitittääksesi tilauksia eri korteilla eri prosessoreille. Kaikki nämä regexit otettiin Regexbuddyn kirjastosta.

  • Visa: ^4{12}(?:{3})?$ Kaikki Visa-kortin numerot alkavat 4: llä. Uusissa korteissa on 16 numeroa. Vanhoissa korteissa on 13.
  • MasterCard: ^(?:5{2}|222|22|2{2}|27|2720){12}$ MasterCard-numerot alkavat joko numeroilla 51-55 tai numeroilla 2221-2720. Kaikissa on 16 numeroa.
  • American Express: ^3{13}$ American Express-korttinumerot alkavat 34: stä tai 37: stä ja niissä on 15 numeroa.
  • Diners Club: ^3 (?: 0|){11}$ Diners Club-korttinumerot alkavat 300: sta 305: een, 36: een tai 38: aan. Kaikissa on 14 numeroa. On Diners Club kortteja, jotka alkavat 5 ja on 16 numeroa. Nämä ovat Diners Clubin ja Mastercardin yhteisyritys, ja niitä pitäisi käsitellä MasterCardin tavoin.
  • Discover: ^6 (?:011/5{2}){12}$ Discover kortin numerot alkavat 6011 tai 65. Kaikissa on 16 numeroa.
  • JCB: ^(?: 2131/1800/35\d{3})\D{11}$ JCB-korteissa, jotka alkavat 2131: llä tai 1800: lla, on 15 numeroa. JCB-korteissa, jotka alkavat 35: llä, on 16 numeroa.

jos haluat vain tarkistaa, näyttääkö kortin numero kelvolliselta, voit yhdistää edellä mainitut kuusi regexiä vuorotellen. Ei-kaappaava ryhmä laittaa ankkurit vaihteen ulkopuolelle. Vapaa väli mahdollistaa kommentit ja regex sopii leveys tämän sivun.

^(?:4{12}(?:{3})? # Visa
/ (?: 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
)$

nämä säännölliset lausekkeet nappaavat helposti numeroita, jotka ovat virheellisiä, koska asiakas on syöttänyt liian monta tai liian vähän numeroita. He eivät nappaa numeroita väärillä numeroilla. Sitä varten on noudatettava Luhnin algoritmia, jota ei voi tehdä regexillä. Ja tietenkin, vaikka numero olisi matemaattisesti pätevä, se ei tarkoita, että tällä numerolla varustettu kortti olisi myönnetty tai että tilillä olisi rahaa. Etu tai säännöllinen lauseke on, että voit laittaa sen hieman JavaScript heti tarkistaa ilmeisiä virheitä, sen sijaan, että asiakas odottaa 30 sekuntia luottokortin prosessori epäonnistua tilauksen. Ja jos korttiprosessorisi veloittaa epäonnistuneista tapahtumista, haluat todella ottaa käyttöön sekä regex-että Luhn-validoinnin.

luottokorttinumeroiden löytäminen asiakirjoista

kahdella yksinkertaisella muutoksella voit käyttää mitä tahansa yllä olevista regexeistä löytääksesi korttinumerot suuremmista asiakirjoista. Korvaa huolet ja Dollari sanalla raja kuten \b4{12}(?:{3})?\b.

jos aiot etsiä suurta asiakirjapalvelinta, yksinkertaisempi säännöllinen lauseke nopeuttaa hakua. Ellei yrityksesi käytä 16-numeroisia numeroita muihin tarkoituksiin, sinulla on muutamia vääriä positiivisia. Regex \b\d{13,16}\b löytää minkä tahansa 13-16 numeron sarjan.

etsiessäsi kiintolevyä, joka on täynnä tiedostoja, et voi poistaa välilyöntejä ja viivoja ensin, kuten voit Yhden kortin numeron vahvistamisen yhteydessä. Jos haluat löytää korttinumeroita, joissa on välilyöntejä tai viivoja, käytä \b(?- mitä?) {13,16}\B. Tämä asetus sallii minkä tahansa määrän välilyöntejä ja viivoja missä tahansa numerossa. Tämä on ainoa keino. Visa ja MasterCard laittaa numeroa sarjoissa 4, Kun taas Amex ja Discover käyttää ryhmiä 4, 5 ja 6 numeroa. Numeroihin tulevilla ihmisillä voi olla vielä erilaisia käsityksiä.

tee lahjoitus

säästyikö tämä sivusto juuri sinulta matkalta kirjakauppaan? Ole hyvä ja tee lahjoitus tukeaksesi tätä sivustoa, ja saat elinikäisen mainoksettoman pääsyn tälle sivustolle!

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post Becoming a Veterinary Technician in Wisconsin
Next post process Art vs. Product Art varhaiskasvatuksessa