Hitelkártya-számok keresése vagy ellenőrzése

RegexMagic - generálása reguláris kifejezések megfelelő hitelkártya számok

néhány egyszerű reguláris kifejezések, könnyen ellenőrizheti, hogy az ügyfél megadott érvényes hitelkártya számát A megrendelőlapon. Még a használt hitelkártya típusát is meghatározhatja. Minden kártyakibocsátónak megvan a saját kártyaszáma, amelyet az első 4 számjegy azonosít.

használhat egy kissé eltérő reguláris kifejezést a nagyobb dokumentumokban található hitelkártyaszámok vagy számsorozatok megkereséséhez. Ez nagyon hasznos lehet egy biztonsági ellenőrzés során bizonyítani, hogy nem helytelenül tárja fel ügyfelei pénzügyi adatait.

kezdjük a megrendelőlapot.

szóközök és kötőjelek eltávolítása

az első lépés az összes nem számjegy eltávolítása az ügyfél által megadott kártyaszámból. A fizikai hitelkártyák a kártyaszámon belül szóközökkel rendelkeznek a számjegyek csoportosításához, megkönnyítve az emberek számára az olvasást vagy a gépelést. Tehát a megrendelőlapnak el kell fogadnia a kártyaszámokat szóközökkel vagy kötőjelekkel.

ha az összes nem számjegyet el szeretné távolítani a kártyaszámból, egyszerűen használja a szkriptnyelv “összes cseréje” funkcióját a regex + kereséséhez, és cserélje ki a semmit. Ha csak szóközöket és kötőjeleket szeretne cserélni, használhatja a +lehetőséget. Ha ez a regex furcsának tűnik, ne feledje, hogy egy karakterosztályban a kötőjel szó szerinti, ha közvetlenül a záró zárójel előtt (vagy közvetlenül a nyitó zárójel vagy a tagadó caret után) fordul elő.

ha kíváncsi, hogy mi a plusz: ez a teljesítmény. Ha a bemenet egymást követő nem számjegyekkel rendelkezik, például 1===2, akkor a + egyszerre illeszkedik a három egyenlőségjelhez, és egy cserével törli őket. A plusz nélkül három cserére lenne szükség. Ebben az esetben a megtakarítás csak néhány mikroszekundum. De jó szokás, hogy a regex hatékonyságát a fejedben tartsa. Bár a megtakarítás itt minimális, így az extra plusz beírásának erőfeszítése is.

hitelkártyaszámok érvényesítése a megrendelőlapon

a hitelkártyaszámok érvényesítése ideális feladat a reguláris kifejezésekhez. Ezek csak egy 13-16 számjegyből álló sorozat, néhány konkrét számmal az elején, amelyek azonosítják a kártya kibocsátóját. Az alábbi reguláris kifejezések segítségével figyelmeztetheti az ügyfeleket, amikor olyan kártyát próbálnak használni, amelyet nem fogad el, vagy különböző kártyák segítségével irányíthatja a megrendeléseket különböző processzorokhoz. Ezek a regexek RegexBuddy könyvtárából származnak.

  • vízum: ^4{12}(?:{3})?$ Minden Visa kártyaszám 4-gyel kezdődik. Az új kártyák 16 számjegyből állnak. Régi kártyák 13.
  • MasterCard: ^(?:5{2}|222|22|2{2}|27|2720){12}$ a MasterCard számok vagy az 51-től 55-ig, vagy a 2221-től 2720-ig terjedő számokkal kezdődnek. Mindegyiknek 16 számjegye van.
  • American Express: ^3{13} A$ American Express kártyaszámok 34-gyel vagy 37-gyel kezdődnek, és 15 számjegyből állnak.
  • Diners Club: ^3 (?: 0/) {11} $ Diners Club kártya számok kezdődik 300 keresztül 305, 36 vagy 38. Mindegyiknek 14 számjegye van. Vannak Diners Club kártyák, amelyek 5-tel kezdődnek és 16 számjegyből állnak. Ez egy közös vállalkozás a Diners Club és a MasterCard között, és úgy kell feldolgozni, mint egy MasterCard.
  • felfedez: ^6 (?:011/5{2}){12}$ fedezze kártya számok kezdődik 6011 vagy 65. Mindegyiknek 16 számjegye van.
  • JCB: ^(?:2131/1800/35 \ d{3}) \ D{11}$ JCB kártyák kezdődő 2131 vagy 1800 van 15 számjegy. A 35-tel kezdődő JCB kártyáknak 16 számjegyük van.

ha csak azt szeretné ellenőrizni, hogy a kártya száma érvényesnek tűnik-e, a márka meghatározása nélkül kombinálhatja a fenti hat regexet váltakozással. A nem rögzítő csoport a horgonyokat a váltakozáson kívül helyezi. A szabad térköz lehetővé teszi a megjegyzéseket és a regexet, hogy illeszkedjen az oldal szélességéhez.

^(?: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} # felfedez
/ (?:2131/1800/35 \ D{3}) \ d{11} # JCB
)$

ezek a reguláris kifejezések könnyen elkapják az érvénytelen számokat, mert az ügyfél túl sok vagy túl kevés számjegyet adott meg. Nem fogják elkapni a helytelen számjegyekkel rendelkező számokat. Ehhez követnie kell a Luhn algoritmust, amelyet nem lehet megtenni regexszel. Természetesen, még ha a szám matematikailag érvényes is, ez nem jelenti azt, hogy kiadtak egy kártyát ezzel a számmal, vagy hogy pénz van a számlán. Az előny vagy a reguláris kifejezés az, hogy beteheti egy kis Javascriptbe, hogy azonnal ellenőrizze a nyilvánvaló hibákat, ahelyett, hogy az ügyfelet 30 másodpercre várná, amíg a hitelkártya-feldolgozó meghiúsítja a megrendelést. És ha a kártyaprocesszor díjat számít fel a sikertelen tranzakciókért, akkor valóban meg akarja valósítani mind a regex, mind a Luhn érvényesítést.

hitelkártya-számok keresése a Dokumentumokban

két egyszerű módosítással a fenti regexek bármelyikét felhasználhatja a nagyobb dokumentumok kártyaszámainak megkereséséhez. Egyszerűen cserélje ki a caret és a dollár szót egy szóhatárra, mint a \b4{12}(?:{3})?\b.

ha nagy dokumentumkiszolgálón kíván keresni, egy egyszerűbb reguláris kifejezés felgyorsítja a keresést. Hacsak a vállalat nem használ 16 jegyű számokat más célokra, kevés hamis pozitív eredményt kap. A regex \ b \ d{13,16} \ b bármilyen 13-16 számjegyű sorozatot talál.

fájlokkal teli merevlemezen történő kereséskor nem lehet először szóközöket és kötőjeleket kivágni, mint egyetlen kártyaszám érvényesítésekor. A kártyaszámok szóközökkel vagy kötőjelekkel való megkereséséhez használja a \b(?: \ d*?) {13,16} \ b. Ez a regex tetszőleges mennyiségű szóközt és kötőjelet engedélyez a szám bármely pontján. Ez tényleg az egyetlen módja. A Visa és a MasterCard 4-es, míg az Amex és a Discover 4-es, 5-ös és 6-os számjegyeket használ. A számokat beíró embereknek még eltérő ötleteik lehetnek.

Adományozzon

ez a weboldal csak megtakarított egy utat a könyvesboltba? Kérjük, Adományozzon, hogy támogassa ezt az oldalt, és kapsz egy életre reklámmentes hozzáférést ehhez az oldalhoz!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

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