30 Koristni odrezki kode Regex za spletne razvijalce
Redni izrazi so močno orodje, ki bi moralo biti v pasu orodja vsakega razvijalca. Lahko se ujemajo z nizom znakov, ki temeljijo na zelo zapletenih parametrih, kar vam lahko prihrani veliko časa pri gradnji dinamičnih spletnih mest.
Spletni razvijalci se soočajo z različnimi nalogami kot razvijalci programske opreme, vendar ostajajo številni isti temelji kode. Redni izrazi (ali regex) imajo a strma začetna krivulja učenja, vendar so lahko izjemno močan, če se pravilno uporablja.
Najtežji del je učenje sintakse in učenje pisanja lastne regex kode od začetka. Da bi prihranili čas, sem organiziral 30 različnih odrezkov kode regex, ki jih lahko vključite v razvojne projekte. Ker regex ni omejen na en sam jezik, lahko te odrezke uporabite za karkoli od JavaScript do PHP ali Python.
1. Moč gesla
^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [az]. * [az]. * [az]). 8 $
Preverjanje moči gesla je pogosto subjektivno, zato ni absolutnega pravilnega odgovora. Ampak menim, da je ta odrezek regex odlična izhodiščna točka, če ne želite napisati svojega preveritelja moči gesla iz nič. (Vir)
2. Heksadecimalna barva
[(a-fA-F] | [0-9]) 3, 6
Področje spletnega razvoja je vseprisotno s šestnajstimi barvnimi kodami. Ta odrezek za regex se lahko uporabi za vlečenje šestnajstiških kodnih nizov iz katerega koli niza za kateri koli namen. (Vir)
3. Potrdite e-poštni naslov
/[A-Z0-9._%+-]+@[A-Z0-9-]+.+ .[A-Z]2,4/igm
Ena od najpogostejših nalog za razvijalce je preveriti, ali je niz oblikovan v slogu e-poštnega naslova. Za izvedbo te naloge je na voljo veliko različnih različic, zato ta povezava v SitePointu ponuja dva različna odlomka kode za preverjanje skladnosti e-pošte z nizom. (Vir)
4. Naslov IPv4
/((::(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\t (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?)
Podobno kot e-poštni naslov je tipičen naslov IP, ki se uporablja za identifikacijo določenega računalnika, ki dostopa do interneta. Ta regularni izraz bo preveril niz in preveril, ali sledi sintaksi naslova IPv4. (Vir)
5. Naslov IPv6
((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]))
Druga možnost je, da preverite naslov novejše sintakse IPv6 s tem bolj naprednim odlomkom regexa. Razlika je manjša, čeprav je bistvena med razvojem. (Vir)
6. Tisoče ločilcev
d 1,3 (? = (d 3) + (?! d)) / g
Tradicionalni sistemi oštevilčevanja zahtevajo vejico, čas ali drugo oznako vsake tretje številke večjega števila. Ta koda za poštno številko deluje na poljubnem številu in bo uporabila katero koli oznako, ki jo izberete za vsako tretjo številko, ki se loči na tisoče, milijone itd. (Vir)
7. Preklopite HTTP na hiperpovezavo
if (! s.match (/ ^ [a-zA-Z] +:: //)) s = 'http: //' + s;
Ne glede na to, ali delate v JavaScriptu, Ruby ali PHP, se lahko ta regularni izraz zdi zelo koristen. Preveril bo vse URL-je, da bi videl, ali ima predpono HTTP / HTTPS, in če ne, jih ustrezno pripravite. (Vir)
8. Povlecite domeno iz naslova URL
/https?:\t (?: [-]) ()))))
Vsaka domena spletne strani vsebuje začetni protokol (HTTP ali HTTPS) in pogosto poddomeno ter dodatno pot strani. S tem odrezkom lahko prerežete vse to in vrnete samo ime domene brez dodatnih dodatkov. (SourceL
9. Razvrsti ključne besede po številu besed
^ [^ s] * $ se ujema s ključno besedo ene besede ^ [^ s] * s [^ s] * $ se ujema s ključno besedo z 2 besedama ^ [^ s] * \ t * se ujema s ključnimi besedami z vsaj 2 besedama (2 in več) ^ ([^ s] * s) 2 [^ s] * $ se ujema s ključno besedo 3-besedo ^ ([^ s] * \ t ) 4 [^] * $ se ujema s petimi besedami in več ključnimi besedami (longtail)
Uporabniki storitve Google Analytics in Orodja za spletne skrbnike bodo resnično uživali v tem regularnem izrazu. Lahko razvrsti in organizira ključne besede glede na število besed, uporabljenih pri iskanju.
To je lahko številčno specifično (tj. Samo 5 besed) ali pa se ujema z obsegom besed (to je 2 ali več besed). Ko se uporablja za razvrščanje analitičnih podatkov, je to močan izraz. (Vir)
10. Poiščite veljavno nizko Base64 v PHP-ju
php [] eval (base64_decode ((([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-z0-9 + /] 2 ==)?) 1 \ t
Če ste PHP razvijalec, potem boste morda morali na neki točki razčleniti kodo, ki išče binarne objekte, ki so kodirani v Base64. Ta odrezek se lahko uporabi za vso kodo PHP in bo preveril, ali obstajajo obstoječi nizi Base64. (Vir)
11. Veljavna telefonska številka
d 1,3? [-.]? (? (?: d 2,3)?? [-.]? d d [-.]? d d d
Kratka, sladka in do točke. Ta koda regex bo potrdila katero koli tradicionalno skladnjo telefonskih številk, ki temelji predvsem na ameriškem stilu telefonskih številk.
Ker se to lahko spremeni v precej zapleteno temo, priporočam, da ta niz Stack posnamete za podrobnejše odgovore. (Vir)
12. Vodilni in sledilni presledki
^ [s] + | [s] + $
S tem odrezkom kode izvlecite presledek za vodilni / končni presledek iz niza. To morda ni velik problem, vendar včasih lahko vpliva na izhod, ko ga potegnemo iz baze podatkov ali uporabimo za drugo kodiranje dokumenta. (Vir)
13. Povlecite izvor slike)
\< *[img][^\>] * [src] * = * [\ t
Če iz nekega razloga potrebujete izvlek izvirnika slike iz HTML-ja, je ta odrezek kode odlična rešitev. Čeprav lahko poteka brez težav v podpornem okolju, naj bi se JS devendi na zunanji strani raje oprli na metodo .attr () jQuery za frontend. (Vir)
14. Potrdite datum v formatu DD / MM / LLLL
^ (? :( ?: 31 (\ _ | - | \ _) (?: 0? [13578] | 1 [02])) 1 | (? :( ?: 29 | 30) (\ t (): 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] \ t (?: 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)?
Datumi so zapleteni, ker se lahko pojavijo kot besedilo + številke ali samo kot številke z različnimi formati. PHP ima fantastično funkcijo datuma, vendar to ni vedno najboljša izbira pri vleku surovega niza. Namesto tega uporabite ta regularni izraz za to določeno sintakso datuma. (Vir)
15. YouTube Video ID Match
/http:\t (?:youtu be !|(?:[az]2,3\t???\t =) ([w -] 11). * / gi
YouTube je ohranil isto strukturo URL-jev že leta, ker deluje. To je tudi najbolj priljubljena spletna stran za souporabo videoposnetkov na spletu, zato videoposnetki v YouTubu povzročajo največ prometa.
Če morate vnesti ID videoposnetka v YouTubu iz URL-ja, je ta koda popolna in bi morala odlično delovati za vse različice struktur YouTube URL-jev. (Vir)
16. Veljavna ISBN
b (?: ISBN (? ::? |))? ((?: 97 [89])? 9 [dx]) b / i
Tiskane knjige sledijo sistemu oštevilčevanja, imenovanem ISBN. To lahko postane precej zapleteno, če upoštevate razlike med ISBN-10 in ISBN-13.
Vendar pa ta neverjeten delček omogoča potrditev številke ISBN in preverite, če je ISBN10 ali 13. Vsa koda je napisana v PHP-ju, zato se bo to izkazalo za izjemno koristno za spletne razvijalce. (Vir)
17. Preverite poštno številko
d 5 (?: [- s] d 4)? $
Ustvarjalec tega odlomka ni samo izdal svojega dela za svobodo, temveč je tudi vzel čas, da ga razloži. Ta odsek boste našli koristne, ne glede na to, ali uporabljate tipično 5-mestno poštno številko ali daljšo 9-mestno različico.
Ne pozabite, da je to v prvi vrsti namenjeno ameriškemu sistemu poštnih številk, zaradi česar bodo morda potrebne prilagoditve za druge države. (Vir)
18. Veljavno Twitter uporabniško ime
/ @ ([A-Za-z0-9 _] 1,15) /
Tukaj je zelo majhen kodni odrezek za ujemanje z uporabniškimi imeni storitve Twitter, ki jih najdete v nizu. Preveri za @omeniti sintaksa, ki je odlična za samodejno skeniranje vsebine tweet-a (ali tweeta). (Vir)
19. Številke s kreditno kartico
^ (?: 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)
Za potrditev številke kreditne kartice je pogosto potrebna varna platforma, ki jo gostite drugje. Ampak regex se lahko uporablja za minimalne zahteve tipične številke kreditne kartice.
Podrobnejši seznam kod za posamezne kartice najdete tukaj. To vključuje Visa, MasterCard, Discover in mnoge druge. (Vir)
20. Poiščite atribute CSS
s * [a-zA-Z -] + + * [:] 1 [a-zA-Z0-9 s. #] + [;] 1
Morda je redko izvajati regex nad CSS, vendar tudi to ni neverjetno nenavadna situacija.
Ta odrezek kode lahko uporabite za izvlek vsakega ustreznega CSS-ja in vrednosti iz posameznih selektorjev. Uporabite ga lahko iz poljubnega števila razlogov, po možnosti za ogled kosov CSS ali za odstranitev podvojenih lastnosti. (Vir)
21. Strip HTML Comments
Če iz kateregakoli razloga morate odstraniti vse komentarje iz bloka HTML, je to koda, ki jo boste uporabili. Poleg izraza boste našli tudi primer PHP z uporabo preg_replace. (Vir)
22. URL profila Facebook
/(?:http:/?)?(?:www:)?facebook\t (?: [w] - * * * *
Facebook je neverjetno priljubljen in je šel skozi veliko različnih shem URL. V primerih, ko jemljete URL-je profilov uporabnikov, je morda koristno razčleniti nizove in potrditi, da so pravilno strukturirani. Ta odrezek lahko naredi točno to in je idealen za vse povezave v slogu FB-ja. (Vir)
23. Preverite različico Internet Explorerja
^. * MSIE [5-8] (?: [0-9] +)? (?!. * Trident / [5-9] 0).
Premik Microsofta na Edge ni bil soglasen in mnogi ljudje se še vedno zanašajo na klasični Internet Explorer. Razvijalci pogosto potrebujejo, da preverijo različice IE za ravnanje z nedoslednostjo pri upodabljanju motorjev.
Ta odrezek lahko uporabite v JavaScriptu za testiranje agenta brskalnika, ki temelji na uporabi različice Internet Explorerja (5-11). (Vir)
24. Izvleček cene
/(\T[0-9,]+(\t
Določanje cen je v različnih oblikah, ki vsebujejo decimalke, vejice in simbole valut. Ta regularni izraz lahko preveri vse te različne formate in izvleče ceno iz katerega koli niza. (Vir)
25. Razčlenite Glava e-pošte
/ [A-Z0-9._%+-]+@(?:[A-Z0-9-]+\t
S to eno vrstico kode lahko razčlenite preko glave e-pošte, da se izvlečete “do” informacije iz glave. Uporablja se lahko v tandemu skupaj z več e-poštnimi sporočili.
Če se za to nalogo raje izognete, morate namesto tega zanašati na razčlenjevalno knjižnico. (Vir)
26. Ujemanje določenega tipa datoteke
/^(.* \ t
Ko se ukvarjate z različnimi oblikami datotek, kot so .xml, .html in .js, lahko pomagate preveriti datoteke tako lokalno kot tudi, ki jih naložijo uporabniki. Ta odrezek izvleče datotečno pripono, da preveri, ali je veljavna iz vrste veljavnih razširitev, ki jih lahko po potrebi spremenite. (Vir)
27. Ujemanje niza URL-jev
[u_sl-z0-6] / (b) \ t -9 @:% _ +. ~ #? & // =] *)? / Gi
Ta odrezek lahko uporabite za nizove HTTPS in HTTP, da preverite, ali se besedilo ujema s tradicionalno sintakso domene TLD. Na voljo je tudi preprosta izvedba tega regexa z uporabo RegExp JavaScripta. (Vir)
28. Dodaj rel =”nofollow” do povezav
(] *) (href = "https?: //) ((?! (?: (?: www.)?". implode ('| (?: www.)?', $ follow_list). ') ) [^ "] +)" ((?!. * brel =) [^>] *) (?: [^>] *)
Če delate s paketom HTML kode, je lahko grozno uporabiti ročno delo v ponavljajočih se nalogah. Redni izrazi so popolni za to priložnost in bodo prihranili veliko časa.
Ta odrezek lahko povleče vse sidrne povezave iz bloka HTML in doda rel =”nofollow” atribut za vsak element. Razvijalec, ki je napisal to kodo, je bil dovolj prijazen, da je objavil surovi izraz in delovni primer v PHP-ju.
29. Ujemanje medijev
/ @ media ([^ ] +) ([s]] +?) s * / g
Razdelite poizvedbe medijev CSS v njihove parametre in lastnosti. To vam lahko pomaga analizirati zunanji CSS na čistejši način z bolj neposrednim poudarkom na načinu delovanja kode. (Vir)
30. Sintaksa Google iskanja
/([+-]?(?:'.+?'|".+?"|[^+ \ _-] 1 [^] *)) / g
Ustvarite lahko svojo lastno poštno kodo za manipuliranje besedila, ki ga je mogoče iskati, s pomočjo sintakse blagovne znamke Google. Znak plus (+) označuje dodatne ključne besede in znak minus (-) označuje besede, ki jih je treba prezreti in odstraniti iz rezultatov.
To je precej zapleten odrezek, vendar ga lahko pravilno uporabite kot osnovo za izdelavo lastnega iskalnega algoritma. (Vir)
Zaviti
Pot do obvladovanja regexa je dolga, vendar je koristna, če se držite tega. Poleg značilnih orodij za regex je najboljši način za študij ponavljanje. Poskusite zgraditi spletne aplikacije, ki se zanašajo na te odlomke regex, da se naučijo, kako delujejo v pravi spletni aplikaciji. In če imate druge odlomke, ki vam predlagajo, da jih lahko objavite v polju za komentarje spodaj.
Zdaj preberite:
50 Koristni odlomki CSS Vsak oblikovalec bi moral imeti