Pagina principala » Codificare » 30 Fragmente de cod regex utile pentru dezvoltatorii web

    30 Fragmente de cod regex utile pentru dezvoltatorii web

    Expresiile regulate sunt un instrument puternic care ar trebui să fie în fiecare curea de instrumente a dezvoltatorului. Ele se pot potrivi cu un șir de caractere bazate pe parametri foarte complexi, care vă pot economisi mult timp atunci când construiți site-uri dinamice.

    Dezvoltatorii web se confruntă cu diferite sarcini decât dezvoltatorii de software, dar multe dintre aceleași fundamente de cod rămân. Expresii regulate (sau regex) nu au curba inițială de învățare abruptă, dar ele pot fi foarte puternic atunci când este folosit corect.

    Partea cea mai dificilă este învățarea sintaxei și învățarea cum să vă scrieți propriul cod regex de la zero. Pentru a economisi timp, am organizat 30 de fragmente de cod regex diferite pe care le puteți încorpora în proiecte de dezvoltare. Și din moment ce regexul nu este limitat la o singură limbă, puteți aplica aceste fragmente din orice JavaScript la PHP sau Piton.

    1. Forța parolei

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

    Verificarea forței unei parole este adesea subiectivă, astfel încât nu există un răspuns absolut corect. Dar simt că acest fragment de regex este un punct de plecare excelent dacă nu doriți să vă scrieți propriul plic de verificare a parolei de la zero. (Sursă)

    2. Culoare hexazecimală

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

    Domeniul de dezvoltare web este omniprezent cu codurile de culoare hexagonale. Acest fragment de regex poate fi folosit pentru a trage chei de cod hexagonale din orice șir de caractere pentru orice scop. (Sursă)

    3. Validați adresa de e-mail

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

    Una dintre cele mai comune sarcini pentru un dezvoltator este să verifice dacă un șir este formatat în stilul unei adrese de e-mail. Există multe variante diferite pentru a îndeplini această sarcină, astfel că acest link SitePoint oferă două fragmente de cod distincte pentru verificarea sintaxei de e-mail împotriva unui șir. (Sursă)

    4. Adresa IPv4

    /\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 /

    Similar cu o adresă de e-mail este adresa IP tipică utilizată pentru a identifica un anumit computer care accesează Internetul. Această expresie regulată va verifica un șir pentru a vedea dacă urmează sintaxa de adresă IPv4. (Sursă)

    5. Adresa 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]))

    În mod alternativ, vă recomandăm să verificați o adresă pentru noua sintaxă IPv6 cu acest fragment de regex mai avansat. Diferența este minoră, deși vitală în timpul dezvoltării. (Sursă)

    6. Mii de separatori

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

    Sistemele tradiționale de numerotare necesită o virgulă, o perioadă, sau o altă notă, la fiecare al treilea număr într-un număr mai mare. Acest cod regex funcționează pe orice număr și va aplica orice marcă pe care o alegeți la fiecare a treia cifră care se separă în mii, milioane, etc. (Sursa)

    7. Prefixați HTTP la Hyperlink

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

    Indiferent dacă lucrați în JavaScript, Ruby sau PHP, această expresie regulată se poate dovedi foarte utilă. Acesta va verifica orice șir de adresă URL pentru a vedea dacă acesta are un prefix HTTP / HTTPS și, dacă nu, prefixați corespunzător. (Sursă)

    8. Trageți Domeniu din URL

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

    Fiecare domeniu de site conține protocolul inițial (HTTP sau HTTPS) și de multe ori un subdomeniu plus calea suplimentară a paginii. Puteți utiliza acest fragment pentru a tăia toate acestea și pentru a reveni doar la numele de domeniu fără extra bibelouri. (SourceL

    9. Sortați cuvinte cheie după numărul de cuvinte

    ^ [^ \ s] * $ se potrivește cu exact cuvântul cheie cu 1 cuvânt ^ [^ \ s] * \ s [^ \ s] * $ se potrivește cu exact cuvântul cheie cu 2 cuvinte ^ [^ \ s] * \ s [^ \ * potrivește cuvintele cheie cu cel puțin 2 cuvinte (2 și mai multe) ^ ([^ \ s] * \ s) 2 [^ \ s] * $ se potrivește cu exact cuvântul cheie cu 3 cuvinte ^ ([^ \ s] * \ s ) 4 [^ \ s] * $ se potrivește cuvintelor cheie cu 5 cuvinte și mai multe (longtail)

    Utilizatorii Google Analytics și Instrumentele Google pentru webmasteri se vor bucura cu adevărat de această expresie regulată. Poate sorta și organiza cuvinte cheie pe baza numărului de cuvinte utilizate într-o căutare.

    Aceasta poate fi specifică numeric (adică numai 5 cuvinte) sau se poate potrivi cu un interval de cuvinte (adică 2 sau mai multe cuvinte). Când este folosit pentru a sorta datele de analiză, aceasta este o expresie puternică. (Sursă)

    10. Găsiți un string String Valid64 în PHP

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

    Dacă sunteți un PHP dev atunci la un moment dat ar putea fi necesar să analizați codul în căutarea obiectelor binare codate Base64. Acest fragment poate fi aplicat întregului cod PHP și va verifica dacă există șiruri de bază Base64. (Sursă)

    11. Număr de telefon valabil

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

    Scurt, dulce și până la punct. Acest cod regex va valida orice sintaxă tradițională a numerelor de telefon, bazată în primul rând pe stilul american de numere de telefon.

    Deoarece acest lucru se poate transforma într-un subiect destul de complicat, vă recomandăm să schimbați acest fir Stack pentru răspunsuri mai detaliate. (Sursă)

    12. Spațiul principal al spațiului alb

    ^ [\ s] + | [\ s] + $

    Utilizați acest fragment de cod pentru a scoate spațiile de culoare de la un șir. Acest lucru nu poate fi o afacere mare, dar uneori poate afecta ieșirea atunci când este tras dintr-o bază de date sau aplicată la o altă encodare a documentului. (Sursă)

    13. Trageți sursa de imagine)

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

    Dacă dintr-un motiv oarecare trebuie să scoateți sursa unei imagini direct din HTML, acest fragment de cod este soluția perfectă. Deși se poate executa fără probleme pe backend, interfața JS devs trebuie să se bazeze în schimb pe metoda .attr () a jQuery pentru frontend. (Sursă)

    14. Validați data în format DD / MM / YYYY

    ^ (:( ?: 31 (\ / | - |?.? \) (?: 0 [13578] | 1 [02])) | (? :( ?: 29 | 30) \ 1 (\ / | - | \) (?: 0 [1,3-9] |.? 1 [0-2]) \ 2)) (:( ?: 1 [6-9] |? [C2-9] \ d)? \ d 2) $ | ^ (?: 29 (\ / | - |. \)? 0 2 \ 3 (:( :( ?: 1 [6-9] | [C2-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] | [C2-9] \ d) \ d 2) $

    Datele sunt dificile deoarece pot apărea ca numere de text + sau chiar ca numere cu formate diferite. PHP are o funcție de date fantastică, dar aceasta nu este întotdeauna cea mai bună alegere atunci când trageți un șir brut. Luați în considerare utilizarea acestei expresii regulate pentru această sintaxă de dată specifică. (Sursă)

    15. Potriviți ID-ul videoclipului YouTube

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

    YouTube a păstrat aceeași structură de adrese URL de ani de zile, deoarece funcționează. De asemenea, este cel mai popular site de partajare video de pe web, astfel încât videoclipurile YouTube tind să conducă cel mai mult trafic.

    Dacă trebuie să scoateți un ID de videoclip YouTube dintr-o adresă URL, acest cod regex este perfect și ar trebui să funcționeze perfect pentru toate variantele structurilor URL ale adreselor YouTube. (Sursă)

    16. ISBN valabil

    / \ b (?: ISBN (?:?))? ((?: 97 [89])? \ d 9 [\ dx]

    Cărțile tipărite urmează un sistem de numerotare cunoscut sub numele de ISBN. Acest lucru poate fi destul de dificil atunci când luați în considerare diferențele dintre ISBN-10 și ISBN-13.

    Cu toate acestea, acest fragment incredibil vă permite să validați un număr ISBN și să verificați dacă acesta este ISBN10 sau 13. Tot codul este scris în PHP, astfel încât acest lucru ar trebui să fie extrem de util pentru dezvoltatorii web. (Sursă)

    17. Verificați codul poștal

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

    Creatorul acestui fragment nu numai că și-a lansat gratuit lucrarea, dar și-a dat timp să-i explice. Veți găsi acest fragment util dacă vă potriviți un cod tipic de 5 cifre sau o versiune mai lungă de 9 cifre.

    Rețineți că acest lucru este destinat în primul rând sistemului american de coduri poștale, astfel încât acest lucru poate necesita ajustări pentru alte țări. (Sursă)

    18. Nume de utilizator valide

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

    Iată un fragment de cod foarte mic pentru potrivirea cu numele de utilizator Twitter găsite într-un șir. Verifică @menţiune sintaxa care este perfectă pentru scanarea automată a conținutului unui tweet (sau tweets). (Sursă)

    19. Numere de card de credit

    ^ (?: 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) $

    Validarea unui număr de card de credit necesită adesea o platformă sigură găzduită online în altă parte. Însă regexul poate fi folosit pentru cerințele minime ale unui număr tipic al cărții de credit.

    O listă mai cuprinzătoare de coduri pentru carduri individuale poate fi găsită aici. Acestea includ Visa, MasterCard, Discover și multe altele. (Sursă)

    20. Găsiți atributele CSS

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

    Poate fi rar să rulezi regex peste CSS, dar nu este o situație incredibil de ciudată.

    Acest fragment de cod poate fi folosit pentru a scoate fiecare proprietate CSS potrivită și valoare de la selectorii individuali. Poate fi folosit pentru orice fel de motive, posibil pentru a vizualiza bucăți de CSS sau pentru a elimina proprietățile duplicate. (Sursă)

    21. Strip HTML Comentarii

    Dacă din orice motiv trebuie să eliminați toate comentariile dintr-un bloc de cod HTML, acesta este codul regex de utilizat. Împreună cu expresia veți găsi un exemplu PHP folosind preg_replace. (Sursă)

    22. URL-ul profilului Facebook

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

    Facebook este incredibil de popular și a trecut prin multe scheme de adrese URL diferite. Într-o situație în care luați URL-uri de profil de la utilizatori, ar putea fi util să analizați șirurile și să confirmați că sunt structurate corespunzător. Acest fragment poate face exact acest lucru și este perfect pentru toate legăturile în stil FB. (Sursă)

    23. Verificați versiunea de Internet Explorer

    MSIE [5-8] (a: [0-9] +) p (* 1 * Trident \ / [5-9] \.

    Trecerea Microsoft la Edge nu a fost unanimă și mulți oameni se bazează încă pe Internet Explorer clasic. Dezvoltatorii trebuie adesea să verifice dacă versiunile IE se ocupă de neconcordanțe cu motoarele de randare.

    Acest fragment poate fi folosit în JavaScript pentru a testa un agent de browser în funcție de versiunea Internet Explorer (5-11) utilizată. (Sursă)

    24. Prețul extracției

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

    Tarifarea vine într-o varietate de formate care conțin zecimale, virgule și simboluri valutare. Această expresie regulată poate verifica toate aceste formate diferite pentru a scoate un preț din orice șir. (Sursă)

    25. Antetul e-mailului parse

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

    Cu această singură linie de cod puteți parcurge printr-un antet de e-mail pentru a scoate “la” informații din antet. Acesta poate fi folosit în tandem cu mai multe e-mailuri unite.

    Dacă preferați să evitați regex pentru această sarcină, ar trebui să vă bazați în schimb pe o bibliotecă de parsing. (Sursă)

    26. Se potrivește cu un anumit tip de fișier

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

    Când aveți de-a face cu diferite formate de fișiere, cum ar fi .xml, .html și .js, acestea pot ajuta la verificarea fișierelor atât la nivel local, cât și încărcate de utilizatori. Acest fragment trage o extensie de fișier pentru a verifica dacă acesta este valabil dintr-o serie de extensii valide care pot fi modificate după cum este necesar. (Sursă)

    27. Se potrivește un șir de adrese URL

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

    Acest fragment poate fi folosit atât pentru șiruri HTTPS și HTTP pentru a verifica dacă textul se potrivește cu sintaxa tradițională de domeniu TLD. Există, de asemenea, o simplă implementare a acestui regex folosind RegExp-ul JavaScript. (Sursă)

    28. Adăugați rel =”nofollow” la Link-uri

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

    Dacă lucrați cu un lot de cod HTML, este greu să aplicați sarcini manuale în sarcini repetate. Expresiile regulate sunt perfecte pentru această ocazie și vor economisi o mulțime de timp.

    Acest fragment poate trage toate legăturile de ancorare dintr-un bloc de HTML și poate adăuga rel =”nofollow” atributul fiecărui element. Dezvoltatorul care a scris acest cod a fost destul de bun pentru a publica expresia primă plus un exemplu de lucru în PHP.

    29. Match Media Query

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

    Spargerea interogărilor media CSS în parametrii și proprietățile lor. Acest lucru vă poate ajuta să analizați CSS extern într-o manieră mai curată, cu o concentrare mai directă asupra modului în care funcționează codul. (Sursă)

    30. Sintaxa de căutare Google

    / ([+]] ()

    Puteți crea propriul cod regex pentru a manipula textul care poate fi căutat utilizând sintaxa mărcii comerciale Google. Semnul plus (+) indică cuvinte cheie suplimentare, iar semnul minus (-) indică cuvinte care ar trebui ignorate și eliminate din rezultate.

    Este un fragment destul de complicat, dar folosit în mod corespunzător poate oferi o bază pentru construirea propriului algoritm de căutare. (Sursă)

    Învelire

    Calea de a stăpâni regexul este lungă, dar plină de satisfacție dacă rămâneți cu ea. Dincolo de instrumentele tipice de regex, cel mai bun mod de a studia este prin repetare. Încercați să construiți aplicații web care se bazează pe aceste fragmente regex pentru a afla cum funcționează într-o aplicație web reală funcțională. Și dacă aveți alte fragmente pentru a sugera că le puteți posta în zona de comentarii de mai jos.

    Acum citiți:

    50 Fragmente CSS utile fiecare designer ar trebui să aibă