A reguláris kifejezés olyan karaktersorozat, amely keresési mintát alkot. A reguláris kifejezéseket főleg szövegek vagy karakterláncok keresésére, érvényesítésére és átalakítására használják.

Ismerje meg, hogyan érvényesítheti a hitelkártyaszámokat, például a Mastercard, a Visa Card és az American Express szabályos kifejezésekkel.

Mikor használjunk RegEx-et a hitelkártyaszám érvényesítéséhez?

A harmadik fél szolgáltatásai minden tranzakciós kísérletért díjat számítanak fel. Akár sikeres a tranzakció, akár nem, Önnek ki kell fizetnie a költségeket. Ilyen esetekben el akarja utasítani az egyértelműen érvénytelen hitelkártyaszámokat. A reguláris kifejezések segítségével gyorsan ellenőrizheti a hitelkártyaszámokat.

De nem támaszkodhat teljes mértékben a reguláris kifejezés érvényesítésére a fizetési funkciónál. A kártyakibocsátók rendszeresen változtatják a kártyaszámmintákat (új mintákat vezetnek be, vagy visszavonják a régieket), így a regex módszer nem a legrobusztusabb megoldás. Bár meg lehet próbálni a tetején tartani a kártyamintákat olyan forrásból, mint például

instagram viewer
Wikipédia ami gyakran frissül.

A regex segítségével gyorsan megtalálhatja a kártya márkáját, amelyet ezután logók vagy címkék megjelenítésére használhat.

A reguláris kifejezéseknek számos gyakorlati felhasználási esete van. A Linux grep parancs valószínűleg a regex leggyakoribb gyakorlati felhasználási esete.

A projektben használt kód elérhető a GitHub adattár és az MIT licence alapján ingyenesen használható.

RegEx a Mastercard-szám érvényesítéséhez

A Mastercard szám akkor érvényes, ha megfelel az alábbi feltételeknek:

  1. A karakterlánc nem tartalmazhat speciális karaktereket, ábécét vagy szóközöket.
  2. A karakterek számának 16-nak kell lennie.
  3. A karakterláncnak vagy egy 2-jegyű számtartománnyal (51-től 55-ig) vagy egy 4-jegyű számtartománnyal (2221-től 2720-ig) kell kezdődnie.
    • Ha a karakterlánc kétjegyű számtartománnyal kezdődik (51 és 55 között), a következő 14 számjegynek 0 és 9 közötti számnak kell lennie.
    • Ha a karakterlánc 4 jegyű számtartománnyal kezdődik (2221 és 2720 között), a következő 12 számjegynek 0 és 9 közötti számnak kell lennie.

A következő regex teljesíti a fenti feltételeket, és érvényesítheti a Mastercard-számot:

^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[ 0-1]\\d|2720)[0-9]{12}$

Ha nem elégedett a fenti kifejezéssel, nézze meg kezdőknek szóló útmutató a reguláris kifejezésekhez első.

A fenti regex segítségével bármely programozási nyelven érvényesítheti a Mastercard számot. Pythonban a következőképpen teheti meg:

import újra

defcheckMasterCardNo(igazolvány száma):
regex = "^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[ 0-1]\\d|2720)[0-9]{12}$"
r = újra.fordítás (regex)

ha (újra.keresés(r, igazolvány száma)):
nyomtatás("Érvényes")
más:
nyomtatás("Nem érvényes")

kártya1 = "5110762060017101"
checkMasterCardNo (card1)

kártya2 = "8632458236982734"
checkMasterCardNo (2. kártya)

A kód futtatása megerősíti, hogy az első szám érvényes, de a második nem:

RegEx a Visa kártyaszám érvényesítéséhez

A Visa kártyaszám akkor érvényes, ha megfelel az alábbi feltételeknek:

  1. A karakterlánc nem tartalmazhat speciális karaktereket, ábécét vagy szóközöket.
  2. A karakterláncnak 4-gyel kell kezdődnie.
  3. A karakterek számának 13-nak vagy 16-nak kell lennie. A régi vízumkártyák 13, az újak 16 karakterből állnak.
    • Ha a karakterek száma 13, az utolsó 12 számjegynek 0 és 9 közötti számnak kell lennie.
    • Ha a karakterek száma 16, az utolsó 15 számjegynek 0 és 9 közötti számnak kell lennie.

A következő reguláris kifejezés teljesíti a fenti feltételeket, és Ön használhatja Visa kártyaszám érvényesítésére:

^4[0-9]{12}(?:[0-9]{3})?$

Az alábbiakban bemutatjuk a Python módszert a Visa kártyaszám érvényesítésére:

import újra

defcheckVisaCardNo(igazolvány száma):
regex = "^4[0-9]{12}(?:[0-9]{3})?$"
r = újra.fordítás (regex)

ha (újra.keresés(r, igazolvány száma)):
nyomtatás("Érvényes")
más:
nyomtatás("Nem érvényes")

kártya1 = "4539890694174109"
checkVisaCardNo (card1)

kártya2 = "49237429498"
checkVisaCardNo (card2)

A kimenet ismét megerősíti, hogy az első szám érvényes, míg a második érvénytelen:

RegEx az American Express kártyaszám érvényesítéséhez

Az American Express kártyaszám akkor érvényes, ha az alábbi feltételeknek megfelel:

  1. A karakterlánc nem tartalmazhat speciális karaktereket, ábécét vagy szóközöket.
  2. A karakterek számának 15-nek kell lennie.
  3. A karakterláncnak 34-gyel vagy 37-tel kell kezdődnie.
  4. Az utolsó 13 számjegynek 0 és 9 közötti számnak kell lennie.

A következő regex teljesíti a fenti feltételeket, és felhasználhatja az American Express kártyaszám érvényesítésére:

^3[47][0-9]{13}$

American Express kártyaszámát a következő Python kóddal érvényesítheti:

import újra

defcheckAmericanExpressCardNo(igazolvány száma):
regex = "^3[47][0-9]{13}$"
r = újra.fordítás (regex)

ha (újra.keresés(r, igazolvány száma)):
nyomtatás("Érvényes")
más:
nyomtatás("Nem érvényes")

kártya1 = "372831730491196"
checkAmerican ExpressCardNo (card1)

kártya2 = "84732593847743042"
checkAmerican ExpressCardNo (card2)

A kimenet még egyszer megerősíti, hogy az első szám érvényes, de a második érvénytelen:

Reguláris kifejezések alkalmazásai

Használhat néhány meglehetősen egyszerű szabályos kifejezést a gyakori hitelkártyaszámok érvényesítésére. A RegEx egy hatékony eszköz, amelyet adat-előfeldolgozásra, mintaegyeztetésre, adatkinyerésre, lexikális elemzésre, természetes nyelvi feldolgozásra, webkaparásra stb. használhat. A webfejlesztésben reguláris kifejezéseket is használhat a HTML-űrlapok érvényesítésének kezelésére.