Homepage » Coding » 30 Hasznos Regex kódrészletek a webes fejlesztők számára

    30 Hasznos Regex kódrészletek a webes fejlesztők számára

    A rendszeres kifejezések egy hatékony eszköz, amely minden fejlesztő szerszám övében legyen. A nagyon összetett paramétereken alapuló karakterláncokkal egyezhetnek, ami sok időt takaríthat meg a dinamikus weboldalak építésekor.

    A webfejlesztők különböző feladatokkal szembesülnek, mint a szoftverfejlesztők, de ugyanazok a kódok alapjai továbbra is fennmaradnak. Rendszeres kifejezések (vagy. \ T regex) van egy meredek kezdeti tanulási görbe, de lehetnek rendkívül erős, ha helyesen használják.

    A legnehezebb rész a szintaxis megismerése és a saját regex kódjának megírása. Az idő megtakarítása érdekében 30 különböző regex kódrészletet rendeztem be, amelyeket beépíthet a fejlesztési projektekbe. És mivel a regex nem korlátozódik egyetlen nyelvre, ezeket a töredékeket bárhonnan alkalmazhatja JavaScript nak nek PHP vagy Piton.

    1. Jelszó erőssége

    ^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [az]. * [az]. * [az]). 8 $

    A jelszó erejének ellenőrzése gyakran szubjektív, így nincs abszolút helyes válasz. De úgy érzem, hogy ez a regex-kódrészlet kiváló kiindulópont, ha nem akarja a saját jelszavát ellenőrizni semmiből. (Forrás)

    2. Hexadecimális szín

    # ([a-fA-F] | [0-9]) 3, 6

    A webfejlesztés területe mindenütt jelen van a hex színkódokkal. Ez a regex-kódrész bármely húrból származó hex kódkombinációk tetszőleges célú húzásához használható. (Forrás)

    3. Érvényesítse az e-mail címet

    /[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]2,4/igm

    A fejlesztő egyik leggyakoribb feladata, hogy ellenőrizze, hogy egy karakterlánc egy e-mail cím stílusában van-e formázva. A feladat végrehajtásához számos különböző változat létezik, így a SitePoint hivatkozás két különböző kódrészletet tartalmaz az e-mail szintaxis egy stringhez való ellenőrzéséhez. (Forrás)

    4. IPv4 cím

    /\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)3 (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ b /

    Az e-mail címhez hasonlóan az internethez való hozzáférést biztosító adott számítógép azonosítására szolgáló tipikus IP-cím. Ez a rendszeres kifejezés ellenőrzi a karakterláncot, hogy megnézze, hogy követi-e az IPv4-cím szintaxist. (Forrás)

    5. IPv6 cím

    (([0-9A-fA-F] 1,4:) 7,7 [0-9A-fA-F] 1,4 | ([0-9A-fA-F] 1 , 4:) 1,7: | ([0-9A-fA-F] 1,4:) 1,6: [0-9A-fA-F] 1,4 | ([0-9A-fA-F] 1,4:) 1,5 (: [0-9A-fA-F] 1,4) 1,2 | ([0-9A -fa-F] 1,4:) 1,4 (: [0-9A-fA-F] 1,4) 1,3 | ([0-9A-fA-F] 1,4:) 1,3 (: [0-9A-fA-F] 1,4) 1,4 | ([0-9A-fA-F] 1,4 :) 1,2 (: [0-9A-fA-F] 1,4) 1,5 | [0-9A-fA-F] 1,4: ((: [0 -9a-fA-F] 1,4) 1,6) |: ((: [0-9A-fA-F] 1,4) 1,7 |:) | fe80: (: [0-9A-fA-F] 0,4) 0,4% [0-9A-zA-Z] 1, |: :( FFFF (: 0 1,4) 0,1:) 0,1 ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9 ]) \.) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9]) | ([0-9A-fA-F] 1,4:) 1,4: ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9 ]) 0,1 [0-9]) \.) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9])  0,1 [0-9]))

    Alternatívaként érdemes ellenőrizni egy újabb IPv6-szintaxis címét ezzel a fejlettebb regex-részletgel. A különbség kisebb, bár fontos a fejlődés során. (Forrás)

    6. Ezer elválasztó

    / \ D 1,3 (? = (\ D 3) + (?! \ D)) / g

    A hagyományos számozási rendszereknek vessző, idő, vagy más harmadik számjegy nagyobb számban kell megjelennie. Ez a regex kód tetszőleges számban működik, és minden olyan jelet alkalmazni fog, amelyet minden harmadik számjegyre több ezer, millió, stb.

    7. A HTTP függvényének függvényezése hiperhivatkozásra

    ha (! s.match (/ ^ [a-zA-Z] +: /)) s = 'http: //' + s; 

    Akár a JavaScript, a Ruby, akár a PHP programban dolgozik, ez a rendszeres kifejezés nagyon hasznos lehet. Meg fogja vizsgálni az URL-karakterláncokat, hogy lássa, hogy rendelkezik-e HTTP / HTTPS előtaggal, és ha nem, akkor válassza ki azt. (Forrás)

    8. Húzza a tartományt az URL-ből

    /https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i

    Minden weboldal domain tartalmazza a kezdeti protokollt (HTTP vagy HTTPS) és gyakran aldomainet, valamint a további oldalútvonalat. Használhatja ezt a részletet, hogy kivágja mindezeket, és csak a domain nevet küldjön vissza extra kényeztetés nélkül. (SourceL

    9. Kulcsszavak rendezése Word gróf szerint

    ^ [^ s] * $ pontosan egyszóval megegyező kulcsszó ^ [^ s] * * [^ s] * $ pontosan megfelel a 2 szóból álló kulcsszó ^ [^ s] * s [^ s] * legalább 2 szó (2 vagy annál több) kulcsszavakat tartalmaz ^ ([^ s] *) 2 [^ s] * $ pontosan megfelel a 3 szó kulcsszó ^ ([^ s] * ) 4 [^ s] * $ egyezik az 5 szavakkal és több kulcsszóval (longtail)

    A Google Analytics és a Webmestereszközök felhasználói valóban élvezik ezt a rendszeres kifejezést. A kulcsszavakat a keresésben használt szavak száma alapján rendezheti és rendezheti.

    Ez lehet numerikusan specifikus (azaz csak 5 szó), vagy egy szavak köre (azaz 2 vagy több szó). Az analitikai adatok rendezéséhez ez egy erőteljes kifejezés. (Forrás)

    10. Érvényes Base64 karakterlánc keresése PHP-ben

    * php [] eval (base64_decode ('(([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-Z0-9 + /] 2 ==)?) 1 \ '\) \) \;

    Ha egy PHP dev, akkor lehet, hogy egy ponton át kell vizsgálnia a kódot, amely a Base64 kódolt bináris objektumokat keres. Ez a részlet a PHP összes kódjára alkalmazható, és megvizsgálja a meglévő Base64 sztringeket. (Forrás)

    11. Érvényes telefonszám

    ^ + 1,3 a [-]] (a (p: d 2,3)) 8 [-. \ d \ d \ d \ d $

    Rövid, édes és pont. Ez a regex-kód érvényesíti a hagyományos telefonszám-szintaxist, amely elsősorban az amerikai telefonszámokra épül.

    Mivel ez meglehetősen bonyolult témává válhat, azt javaslom, hogy a részletesebb válaszokért ezt a Stack-szálat vesszük át. (Forrás)

    12. Leading & Trailing Whitespace

    ^ [s] + | [s] + $

    Használja ezt a kódrészletet, hogy húzzon ki egy vezetősávot / vonalvezetést. Lehet, hogy ez nem nagy dolog, de néha hatással lehet a kimenetre az adatbázisból húzva vagy egy másik dokumentum kódolására. (Forrás)

    13. Húzza a képforrást)

    \< *[img][^\>] * [src] * = * ["" 0,1 ([^] "] *)

    Ha valamilyen okból ki kell húzni egy kép forrását a HTML-ből, ez a kódrészlet a tökéletes megoldás. Bár a backenden zökkenőmentesen futtatható, a JS devs frontendnek inkább a jQuery .attr () metódusára kell támaszkodnia a frontendre. (Forrás)

    14. A dátum érvényesítése DD / MM / YYYY formátumban

    ^ (? :( ?: 31 (\ / | - | \.) (?: 0? [13578] | 1 [02])) \ 1 | (? :( ?: 29 | 30) (\ / | - | \.) (?: 0? [1,3-9] | 1 [0-2]) \ 2)) (? :( ?: 1 [6-9] | [2-9] \ d)? \ d 2) $ | ^ (?: 29 (\ / | - | \.) 0? 2 \ 3 (? :(? :( ?: 1 [6-9] | [2-9] \ d )? (?: 0 [48] | [2468] [048] | [13579] [26]) | (? :( ?: 16 | [2468] [048] | [3579] [26]) 00)) )) $ | ^ (?: 0? [1-9] | 1 \ d | 2 [0-8]) (\ / | - | \.) (? :( ?: 0? [1-9]) | (?: 1 [0-2])) \ 4 (? :( ?: 1 [6-9] | [2-9] \ d)? \ d 2) $

    A dátumok trükkösek, mert szöveges + számokként, vagy akár különböző formátumú számokkal jelennek meg. A PHP-nek fantasztikus dátumfunkciója van, de ez nem mindig a legjobb választás egy nyers húzás húzásakor. Ehelyett fontolja meg ezt az adott dátum szintaxishoz készült rendszeres kifejezést. (Forrás)

    15. YouTube Video ID egyezés

    /http:\/\/(?:youtu\.be\/|(?:[az]2,3\.)?youtube\.com\/watch(?:\?|#\!)v =) ([\ W -] 11). * / GI

    A YouTube évek óta ugyanazt az URL-struktúrát tartotta fenn, mert csak működik. Ez is a legnépszerűbb videómegosztó webhely az interneten, így a YouTube-videók általában a legtöbb forgalmat vezetik.

    Ha ki kell húzni egy YouTube-videóazonosítót egy URL-ről, a regex-kód tökéletes, és tökéletesen működnie kell a YouTube-URL-struktúrák minden változatához. (Forrás)

    16. Érvényes ISBN

    b (?: ISBN (? ::? |))? ((?: 97 [89])?  [dx])

    A kinyomtatott könyvek az ISBN-néven ismert számozási rendszert követik. Ez meglehetősen bonyolult lehet, ha figyelembe vesszük a ISBN-10 és az ISBN-13 közötti különbségeket.

    Azonban ez a hihetetlen részlet lehetővé teszi, hogy érvényesítsen egy ISBN-számot, és ellenőrizze, hogy az ISBN10 vagy 13. Minden kód PHP-ben van-e írva, így ez rendkívül hasznosnak bizonyulhat a webfejlesztők számára. (Forrás)

    17. Ellenőrizze a Irányítószámot

    ^ \ D 5 (?: [- \ s] \ d 4)? $

    Ennek a töredéknek az alkotója nem csak szabadon bocsátotta ki a munkáját, hanem időt is szándékozott elmagyarázni. Hasznosnak találja ezt a részletet, ha egy tipikus 5-jegyű irányítószámmal vagy a hosszabb 9 jegyű verzióval egyezik meg.

    Ne feledje, hogy ez elsősorban az amerikai irányítószámok rendszerére vonatkozik, így ez más országokra is szükségessé válhat. (Forrás)

    18. Érvényes Twitter-felhasználónév

    / @ ([A-Za-Z0-9 _] 1,15) /

    Íme egy nagyon kis kódrészlet a karakterláncban található Twitter felhasználónévekkel való egyezéshez. Ellenőrzi @említés szintaxis, amely tökéletesen alkalmas egy csipet (vagy tweets) tartalmának automatikus szkennelésére. (Forrás)

    19. Hitelkártya számok

    ^ (?: 4 [0-9] 12 (?: [0-9] 3)? | 5 [1-5] [0-9] 14 | 6 (?: 011 | 5 [ 0-9] [0-9]) [0-9] 12 | 3 [47] [0-9] 13 | 3 (?: 0 [0-5] | [68] [0-9 ]) [0-9] 11 | (?: 2131 | 1800 | 35 \ d 3) \ d 11) $

    A hitelkártya számának érvényesítése gyakran biztonságos platformot igényel, amelyet máshol online tárolnak. De a regex a tipikus hitelkártyaszám minimális követelményeihez használható.

    Az egyes kártyák kódjainak részletesebb listája itt található. Ide tartoznak a Visa, a MasterCard, a Discover és a sok más. (Forrás)

    20. Keresse meg a CSS attribútumokat

    ^ \ S * [a-zA-Z \ -] + \ s * [:] 1 \ s [a-zA-Z0-9 \ s. #] + [;] 1

    Ritkán fordulhat elő, hogy a regex a CSS-n keresztül fut, de ez sem hihetetlenül furcsa helyzet.

    Ez a kódrészlet minden egyes CSS tulajdonság és érték kijelölésére használható az egyes szelektorokból. Bármilyen okból is használható, esetleg a CSS darabok megtekintésére, vagy a kettős tulajdonságok eltávolítására. (Forrás)

    21. HTML megjegyzések

    Ha bármilyen okból el kell távolítania az összes megjegyzést egy HTML blokkból, akkor ez a regex kód. A kifejezéssel együtt egy PHP példát talál a preg_replace segítségével. (Forrás)

    22. Facebook-profil URL

    /(?:http:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)? (?: [\ w \ -] * \ /) * ([\ w \ -] *) /

    A Facebook hihetetlenül népszerű, és számos különböző URL-s rendszeren ment keresztül. Olyan helyzetben, amikor profil-URL-eket használ a felhasználóktól, hasznos lehet a sztringek elemzése és annak megerősítése, hogy megfelelően vannak strukturálva. Ez a részlet pontosan ezt teszi, és minden FB-stílusú linkhez tökéletes. (Forrás)

    23. Ellenőrizze az Internet Explorer verzióját

    ^. * MSIE [5-8] (?: [0-9] +)? (?!. * Trident / [5-9] 0). * $

    A Microsoft Edge-re való átállása nem volt egyhangú, és sokan még mindig a klasszikus Internet Explorer-re támaszkodnak. A fejlesztőknek gyakran meg kell vizsgálniuk, hogy az IE változatai kezelik-e a renderelő motorokkal kapcsolatos ellentmondásokat.

    Ez a részlet a JavaScriptben használható egy böngészőügynök tesztelésére az Internet Explorer (5-11) verziójának alapján. (Forrás)

    24. Kivonat ár

    /(\$[0-9,]+(\.[0-9]2)?)/

    Az árak többféle formátumban érhetők el, amelyek tizedesjegyeket, vesszőket és pénznemszimbólumokat tartalmaznak. Ez a rendszeres kifejezés az összes különböző formátumot ellenőrizheti, hogy kivonhasson egy árat bármely sztringből. (Forrás)

    25. E-mail fejléc elemzése

    /\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]2,6\b/i

    Ezzel az egyetlen kódsorral egy e-mail fejléc segítségével elemezhető, hogy kihúzza “nak nek” információkat a fejlécből. Ez párhuzamosan használható több e-mailben egyesítve.

    Ha inkább a regex-et szeretné elkerülni ehhez a feladathoz, esetleg egy elemző könyvtárra támaszkodhat. (Forrás)

    26. Egy adott filetípus egyeztetése

    /^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i

    Amikor különböző fájlformátumokkal foglalkozik, például .xml, .html és .js, akkor segíthet a fájlok helyben és a felhasználók által feltöltött fájlok ellenőrzésében. Ez a részlet egy fájlkiterjesztést húz, hogy ellenőrizze, hogy érvényes-e az érvényes bővítmények sorozatából, amelyek szükség szerint módosíthatók. (Forrás)

    27. Egy URL-karakterlánc egyeztetése

    /[-a-zA-Z0-9@:%_\+.~#?&//=]2,256\.[az]2,4\b(\/[-a-zA-Z0 -9 @:% _ \ +. ~ #? & // =] *)? / gi

    Ez a részlet a HTTPS és a HTTP karakterláncok egyaránt használható, hogy ellenőrizze, hogy a szöveg megfelel-e a hagyományos TLD tartomány szintaxisának. Ennek a regexnek is egyszerű megvalósítása a JavaScript RegExp-jével. (Forrás)

    28. Rel = hozzáadása”nincs követés” linkekre

    (] *) (href = "https?: //) ((?! (?: (?: www:)? '. implode (' | (?: www:)? ', $ follow_list).') ) [^ "] +)" ((?!. * \ Brel =) [^>] *) (?: [^>] *)>

    Ha HTML-kóddal dolgozol, nehézkes lehet a kézi munka alkalmazása ismétlődő feladatokra. A rendszeres kifejezések tökéletesek erre az alkalomra, és sok időt takarítanak meg.

    Ez a töredék húzhatja az összes horgony linket egy HTML blokkból és hozzáadhatja a rel =”nincs követés” attribútum minden elemhez. A fejlesztő, aki ezt a kódot írta, elég kedves volt ahhoz, hogy közzétegye a nyers kifejezést és egy működő példát a PHP-ben.

    29. Média lekérdezés egyezés

    / @ Media ([^ ] +) \ ([\ s \ S] +?) \ S * / g

    A CSS média lekérdezéseket szétválaszthatja paramétereikbe és tulajdonságaikba. Ez segíthet a külső CSS-nek a tisztább módon történő elemzésében, közvetlenebb hangsúlyt fektetve a kód működésére. (Forrás)

    30. Google Search Szintaxis

    /( [+- ]?(?:'.+?'|".+?"| [^+]] 1 [^] *)) / g

    A kereshető szöveg manipulálásához saját regex kódot készíthet a Google védjegyszintaxisa segítségével. A plusz jel (+) további kulcsszavakat jelöl, és a mínuszjel (-) a szavakat, amelyeket figyelmen kívül kell hagyni és törölni kell az eredményekből.

    Ez egy meglehetősen bonyolult részlet, de helyesen használják, amely alapot adhat a saját keresési algoritmusának kiépítéséhez. (Forrás)

    Wrap-Up

    A regex megszerzésének útja hosszú, de jutalmazó, ha ragaszkodik hozzá. A tipikus regex eszközöken túl a legjobb módja az ismétlésnek. Próbáljon meg olyan webalkalmazásokat építeni, amelyek ezekre a regex-részletekre támaszkodnak, hogy megtanulják, hogyan működnek egy valódi működő webes alkalmazásban. És ha más részletekkel is rendelkezik, javasoljuk, hogy küldje el őket az alábbi megjegyzések területen.

    Most olvasható:

    50 Hasznos CSS-töredékek Minden tervezőnek rendelkeznie kell