Koduleht » Kodeerimine » 30 Kasulikud Regexi koodilõigud veebiarendajatele

    30 Kasulikud Regexi koodilõigud veebiarendajatele

    Regulaarsed väljendid on võimas tööriist, mis peaks olema iga arendaja tööriistavöö. Nad võivad sobida väga keeruliste parameetrite alusel, mis võivad salvestada dünaamiliste veebisaitide loomisel palju aega.

    Veebiarendajad seisavad silmitsi erinevate ülesannetega kui tarkvaraarendajad, kuid paljud samad koodide põhialused jäävad alles. Regulaaravaldised (või. \ T regex) on a järsk algõppe kõver, kuid nad võivad olla tohutult võimas, kui seda õigesti kasutatakse.

    Kõige keerulisem on õppida süntaksit ja õppida oma regexi koodi kirjutama nullist. Aja säästmiseks olen korraldanud 30 erinevat regexi koodilõiget, mida saate lisada arendusprojektidesse. Ja kuna regex ei ole piiratud ühe keelega, saate neid fragmente rakendada JavaScript kuni PHP või Python.

    1. Parooli tugevus

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

    Parooli tugevuse kontrollimine on sageli subjektiivne, seega puudub absoluutne õige vastus. Aga ma tunnen, et see regexi fragment on suurepärane lähtepunkt, kui te ei soovi oma paroolitugevuse kontrollijat nullist kirjutada. (Allikas)

    2. Heksadecimaalne värv

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

    Veebiarenduse valdkond on üldkasutatav heksade värvikoodidega. Seda regexi väljavõtet saab kasutada heksakoodide sobitamiseks mis tahes stringist mis tahes eesmärgil. (Allikas)

    3. Kinnitage e-posti aadress

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

    Üks arendaja kõige tavalisemaid ülesandeid on kontrollida, kas string on vormitud e-posti aadressi stiilis. Selle ülesande täitmiseks on palju erinevaid variante, nii et see SitePointi link pakub kahte erinevat koodilõiget, et kontrollida e-posti süntaksit stringi vastu. (Allikas)

    4. IPv4-aadress

    /??((:25 [0-5 ]|2 ​​[0-4] [0-9 ]| [01 ]?ykl_09-9 ]?)\t (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ T

    Sarnaselt e-posti aadressile on tüüpiline IP-aadress, mida kasutatakse konkreetse arvuti tuvastamiseks Interneti kaudu. See regulaaravaldis kontrollib stringi, et näha, kas see järgib IPv4 aadressi süntaksit. (Allikas)

    5. IPv6 aadress

    (([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 | -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 | (: [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,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])

    Teise võimalusena võiksite selle uuema regexi väljavõtte abil kontrollida uuema IPv6-süntaksi aadressi. Erinevus on väike, kuigi oluline arengu ajal. (Allikas)

    6. Tuhanded eraldajad

    / d 1,3 (a = (d 3) + (a! d)) / g

    Traditsioonilised nummerdussüsteemid vajavad koma, perioodi või mõnda muud märki suuremas arvus iga kolmanda numbri kohta. See regex kood toimib mis tahes numbril ja rakendab iga märki, mille valite igale kolmandale numbrile, mis eraldab tuhandeid, miljoneid jne. (Allikas)

    7. Lisage HTTP hüperlinkile

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

    Kas te töötate JavaScript, Ruby või PHP, võib see regulaaravaldis osutuda väga kasulikuks. See kontrollib mis tahes URL-i stringi, et näha, kas sellel on HTTP / HTTPS eesliide ja kui mitte, siis sõltuge sellest. (Allikas)

    8. Tõmmake domeen URL-ilt

    /(??\t++???????\t

    Igal veebisaidi domeenil on algprotokoll (HTTP või HTTPS) ja sageli alamdomeen pluss lisalehekülg. Selle väljavõtte abil saate lõigata läbi kogu selle ja naasta ainult domeeninime ilma lisatasuta. (SourceL

    9. Sorteeri märksõnad Wordi järgi

    ^ [^ s] * $ sobib täpselt 1-sõna märksõna ^ [^ s] * s [^ s] * $ sobib täpselt 2-sõna märksõna ^ [^ s] * s [^ s] * sobib vähemalt kahe sõnaga märksõnad (2 ja rohkem) ^ ([^ s] *) 2 [^ s] * $ vastab täpselt 3-sõna märksõnale ^ ([^ s] *) ) 4 [^ s] * $ sobib 5-sõna ja rohkem märksõnu (longtail)

    Google Analyticsi ja veebimeistri tööriistade kasutajad naudivad seda regulaaravaldist. See võib sorteerida ja korraldada märksõnu otsingus kasutatud sõnade arvu alusel.

    See võib olla numbriliselt spetsiifiline (s.o ainult 5 sõna) või see võib sobida erinevate sõnadega (s.t 2 või enam sõna). Analüütiliste andmete sortimiseks kasutatakse seda ühe võimsana. (Allikas)

    10. Leia Kehtiv Base64 String PHP-s

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

    Kui sa oled PHP dev siis mingil hetkel võib teil olla vaja sõeluda koodi kaudu, mis otsib Base64 kodeeritud binaarobjekte. Seda väljavõtet saab rakendada kõikidele PHP-koodidele ja kontrollida mis tahes olemasolevaid Base64-stringe. (Allikas)

    11. Kehtiv telefoninumber

    ^ + d 1,3 a [-.] (a (a: d 2,3))? [-.] d d [-. d d ja d $

    Lühike, magus ja punkt. See regexi kood valideerib traditsioonilise telefoninumbri süntaksit, mis põhineb peamiselt Ameerika telefoninumbril.

    Kuna see võib muutuda üsna keeruliseks teemaks, siis soovitan selle Stackniidi kärpida üksikasjalikumate vastuste saamiseks. (Allikas)

    12. Leading & Trailing Whitespace

    ^ [s] + | [s] + $

    Kasutage seda koodilõiget, et tõmmata stringist juhtiv / tühi tühik. See ei pruugi olla suur asi, kuid mõnikord võib see mõjutada väljundit andmebaasi tõmbamisel või teise dokumendi kodeeringu rakendamisel. (Allikas)

    13. Pildi allikas)

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

    Kui teil on mingil põhjusel vaja pildi allikat otse HTML-ist välja tõmmata, on see koodilõik ideaalne lahendus. Kuigi see võib backendil sujuvalt töötada, peaksid Frontend JS devs selle asemel tuginema jQuery's .attr () meetodile. (Allikas)

    14. Kinnitage kuupäev DD / MM / YYYY formaadis

    ^ (? :( ?: 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 (? :(? :( ?: 1 [6-9] | [2-9] )? (?: 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)?

    Kuupäevad on keerulised, sest need võivad ilmuda teksti + numbritena või lihtsalt erineva formaadiga numbritena. PHP-l on fantastiline kuupäeva funktsioon, kuid see ei ole alati parim valik toore stringi tõmbamisel. Mõelge selle asemel selle konkreetse kuupäeva süntaksile tehtud regulaaravaldise asemel. (Allikas)

    15. YouTube'i video ID vaste

    /http: / / / / ????????????????????????\t =) ([w -] 11). * / gi

    YouTube on aastaid säilitanud sama URL-i struktuuri, kuna see lihtsalt toimib. See on ka veebis kõige populaarsem videote jagamise sait, mistõttu YouTube'i videod kipuvad enamasti liiklema.

    Kui teil on vaja YouTube'i video ID välja tõmmata URL-ilt, siis see regex kood on täiuslik ja peaks ideaalselt töötama kõigi YouTube'i URL-i struktuuride variantide jaoks. (Allikas)

    16. Kehtiv ISBN

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

    Trükitud raamatud järgivad numbreid, mida tuntakse kui ISBNi. See võib olla üsna keeruline, kui kaalute erinevusi ISBN-10 ja ISBN-13 vahel.

    Kuid see uskumatu fragment võimaldab teil ISBNi numbri kinnitada ja kontrollida, kas see on ISBN10 või 13. Kõik kood on kirjutatud PHP-s, nii et see peaks osutuma veebiarendajatele erakordselt kasulikuks. (Allikas)

    17. Kontrollige Postiindeksit

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

    Selle väljavõtte looja mitte ainult ei vabasta oma tööd tasuta, vaid ta võttis ka aega selle selgitamiseks. Leiad selle väljavõtte kasulikku, kas sobite tüüpilise 5-kohalise postiindeksiga või pikema 9-kohalise versiooniga.

    Pidage meeles, et see on mõeldud eelkõige Ameerika Ühendriikide sihtnumbrite süsteemi jaoks, nii et see võib vajada kohandusi teiste riikide jaoks. (Allikas)

    18. Kehtiv Twitteri kasutajanimi

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

    Siin on väga väike koodilõik, mida saab kasutada stringis leiduvate Twitteri kasutajanimede sobitamiseks. See kontrollib @mention süntaks, mis sobib ideaalselt piiksude (või tweetside) sisu automaatseks skaneerimiseks. (Allikas)

    19. Krediitkaartide numbrid

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

    Krediitkaardi numbri kinnitamine nõuab sageli turvalist platvormi, mis on majutatud mujal võrgus. Kuid regexi saab kasutada tavalise krediitkaardi numbri minimaalsete nõuete täitmiseks.

    Üksikute kaartide koodide põhjalikum loetelu on siin. Siia kuuluvad Visa, MasterCard, Discover ja paljud teised. (Allikas)

    20. Leia CSS atribuudid

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

    Võib juhtuda, et regexi CSS-i käivitamine on haruldane, kuid see pole ka uskumatult kummaline olukord.

    Seda koodilõiget saab kasutada iga sobiva CSS-i omaduse ja väärtuse väljavõtmiseks üksikutest valijatest. Seda saab kasutada mitmel põhjusel, võib-olla vaadata CSS-osi või eemaldada dubleerivaid omadusi. (Allikas)

    21. HTML-i ribad

    Kui teil on mingil põhjusel vaja eemaldada kõik HTML-i ploki kommentaarid, on see kasutatav regex-kood. Koos väljendiga leiate PHP näite, kasutades preg_replace'i. (Allikas)

    22. Facebooki profiili URL

    /(?:http:\t\t)?(?:www\t)?facebook\t)\t)\t)\t (?: [w]] /) * ([w -] *) /

    Facebook on väga populaarne ja on läbinud mitmeid erinevaid URL-i skeeme. Olukorras, kus kasutate kasutajate profiilide URL-e, võib osutuda kasulikuks stringi analüüsimine ja kinnitus selle kohta, et nad on struktureeritud. See väljavõte võib teha täpselt seda ja see sobib kõigile FB-stiilis linkidele. (Allikas)

    23. Kontrollige Internet Exploreri versiooni

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

    Microsofti üleminek Edge'ile ei ole olnud üksmeelne ja paljud inimesed toetuvad endiselt klassikalisele Internet Explorerile. Arendajad peavad tihti kontrollima IE versioonid, et lahendada mootorite renderdamise vastuolusid.

    Seda väljavõtet saab kasutada JavaScriptis, et testida brauseri agenti, mis põhineb Internet Exploreri (5-11) versioonil. (Allikas)

    24. Väljavõtte hind

    /(\T [0-9, ]+(\t [0-9 ]2)?)/

    Hinnakujundus on erinevates vormingutes, mis sisaldavad kümnend-, komasid ja valuuta sümboleid. See regulaaravaldis võib kontrollida kõiki neid erinevaid vorminguid, et tõmmata hind igast stringist. (Allikas)

    25. E-posti päise analüüsimine

    (A-Z0-9._%+- ]+@(?: P.A-Z0-9- ]+\t

    Selle ühe rea abil saate välja tõmmata e-posti päise kaudu “kuni” teavet päisest. Seda saab kasutada koos mitme e-kirjaga, mis on ühendatud.

    Kui eelistate vältida selle ülesande regexi, võite tugineda parsimisraamatukogule. (Allikas)

    26. Sobitage teatud failitüüp

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

    Kui tegelete erinevate failivormingutega, näiteks .xml, .html ja .js, võib see aidata faile kontrollida nii kohalikul kui ka kasutajate poolt üles laaditud failidel. See väljavõte tõmbab faililaiendi, et kontrollida, kas see kehtib kehtivate laienduste hulgast, mida saab vajadusel muuta. (Allikas)

    27. Vastake URL-i stringi

    / arba-a-zA-Z0-9@:%_\t. ~#?&//= ]2,256\t -9 @:% _ +. ~ #? & // =] *)? / Gi

    Seda väljavõtet saab kasutada nii HTTPS- kui ka HTTP-stringide jaoks, et kontrollida, kas tekst vastab traditsioonilisele TLD-domeeni süntaksile. Samuti on selle regexi lihtne rakendamine JavaScripti RegExp abil. (Allikas)

    28. Lisa rel =”nofollow” linkidele

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

    Kui töötate HTML-koodi partiiga, siis võib osutuda karmiks manuaalse töö rakendamine korduvatele ülesannetele. Regulaaravaldised on selleks otstarbeks ideaalsed ja säästavad palju aega.

    See väljavõte võib tõmmata kõik ankurlingid HTML-i plokist ja lisada rel =”nofollow” iga elemendi atribuut. Arendaja, kes selle koodi kirjutas, oli piisavalt lahke, et avaldada PHP-s töötlemata väljund ja töötav näide.

    29. Media Query Match

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

    Jaotage CSS meedia päringud oma parameetritesse ja omadustesse. See aitab teil analüüsida välist CSS-i puhtamal moel, keskendudes otseselt koodide toimimisele. (Allikas)

    30. Google'i otsingu süntaks

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

    Saate luua oma regexi koodi otsitava teksti manipuleerimiseks, kasutades Google'i kaubamärgi süntaksit. Plussmärk (+) tähistab täiendavaid märksõnu ja miinusmärk (-) tähistab sõnu, mida tuleks tulemustest eirata ja eemaldada.

    See on üsna keeruline väljavõte, kuid seda kasutatakse õigesti, see võib olla aluseks oma otsingu algoritmi loomiseks. (Allikas)

    Tõmba otsad kokku

    Regexi omandamise tee on pikk, kuid tasuv, kui te sellega kinni jääte. Peale tüüpiliste regexi tööriistade on parim viis õppida korduste kaudu. Proovige luua veebirakendusi, mis toetuvad nendele regexi väljavõtetele, et teada saada, kuidas nad töötavad reaalses veebirakenduses. Ja kui teil on teisi väljavõtteid, mis näitavad, et saate need allpool olevasse märkuste piirkonda postitada.

    Nüüd loe:

    50 Kasulikud CSS-i väljavõtted Iga disainer peaks olema