Pagrindinis » Kodavimas » 30 Naudingi „Regex“ kodo fragmentai žiniatinklio kūrėjams

    30 Naudingi „Regex“ kodo fragmentai žiniatinklio kūrėjams

    Reguliarios išraiškos yra galingas įrankis, kuris turėtų būti kiekvienos kūrėjo įrankių juostos. Jie gali susieti su simbolių eilute, pagrįstu labai sudėtingais parametrais, kurie gali sutaupyti daug laiko kurdami dinamines svetaines.

    Žiniatinklio kūrėjai susiduria su skirtingomis užduotimis nei programinės įrangos kūrėjai, tačiau daugelis tų pačių kodų pagrindų lieka. Reguliarios išraiškos (arba. \ T regex) turi a staigaus pradinio mokymosi kreivė, bet jie gali būti nepaprastai galingas, kai naudojamas teisingai.

    Sunkiausia dalis yra mokytis sintaksės ir išmokti rašyti savo regex kodą. Norėdami sutaupyti laiko, aš surengiau 30 skirtingų regex kodo fragmentų, kuriuos galite įtraukti į plėtros projektus. Ir kadangi „regex“ neapsiriboja viena kalba, šiuos fragmentus galite pritaikyti bet kuriam „JavaScript“ į PHP arba Python.

    1. Slaptažodžio stiprumas

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

    Slaptažodžio tikrinimas dažnai yra subjektyvus, todėl nėra absoliutaus teisingo atsakymo. Bet manau, kad šis regex fragmentas yra puikus pradžios taškas, jei nenorite parašyti savo slaptažodžio stiprumo tikrintuvo. (Šaltinis)

    2. Heksadeciminė spalva

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

    Žiniatinklio kūrimo sritis yra visur, kur yra šešių spalvų kodai. Šis regex fragmentas gali būti naudojamas hekso kodo atitikmenims iš bet kurios eilutės traukti bet kokiam tikslui. (Šaltinis)

    3. Patvirtinkite el. Pašto adresą

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

    Vienas iš labiausiai paplitusių kūrėjo užduočių yra patikrinti, ar eilutė yra suformatuota el. Pašto adreso stiliumi. Yra daug skirtingų variantų, kaip atlikti šią užduotį, todėl ši „SitePoint“ nuoroda siūlo du skirtingus kodo fragmentus, skirtus patikrinti e-pašto sintaksę prieš eilutę. (Šaltinis)

    4. IPv4 adresas

    (?:(?:25 buttons0-5 ]|2 ​​[0-4] [0-9 ]| [01 ]?-0-9] P.09-9 ]?)\t (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ T

    Panašus į el. Pašto adresą, yra tipinis IP adresas, naudojamas identifikuoti konkretų kompiuterį, pasiekiantį internetą. Ši įprastinė išraiška patikrins eilutę, kad pamatytų, ar ji atitinka IPv4 adreso sintaksę. (Šaltinis)

    5. IPv6 adresas

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

    Arba galbūt norėsite patikrinti naujesnės IPv6 sintaksės adresą su šiuo labiau išplėstiniu regex fragmentu. Skirtumas yra nedidelis, nors ir gyvybiškai svarbus vystymosi metu. (Šaltinis)

    6. Tūkstančiai separatorių

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

    Tradiciniams numeravimo sistemoms reikia didesnio skaičiaus kablelio, laikotarpio arba kito ženklo kas trečiasis skaitmenys. Šis „regex“ kodas veikia bet kuriuo numeriu ir taikys bet kurį pasirinktą ženklą kiekvienam trečiajam skaitmeniui, skiriamam į tūkstančius, milijonus ir tt (Šaltinis)

    7. Priklausykite HTTP nuo hipersaito

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

    Nesvarbu, ar dirbate „JavaScript“, „Ruby“ ar „PHP“, ši įprastinė išraiška gali būti labai naudinga. Ji patikrins bet kokią URL eilutę, kad pamatytų, ar ji turi HTTP / HTTPS prefiksą, ir jei ne, atitinkamai pasirinkite. (Šaltinis)

    8. Ištraukite domeną iš URL

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

    Kiekviename svetainės domene yra pradinis protokolas (HTTP arba HTTPS) ir dažnai yra subdomenas ir papildomas puslapio kelias. Šį fragmentą galite naudoti, kad supjaustytumėte visa tai ir grįžtumėte tik į domeno vardą be papildomų frills. (SourceL

    9. Rikiuoti raktinius žodžius pagal „Word Count“

    ^ [^ s] * $ tiksliai atitinka 1 žodį raktinį žodį ^ [^ s] * s [^ s] * $ atitinka tiksliai 2 žodžių raktinį žodį ^ [^ s] * s [^ s] * atitinka bent 2 žodžių raktinius žodžius (2 ir daugiau) ^ ([^ s] *) 2 [^ s] * $ atitinka tiksliai 3 žodžių raktinį žodį ^ ([^ s] *). ) 4 [^ s] * $ atitinka 5 žodžių ir daugiau raktinių žodžių („longtail“)

    „Google Analytics“ ir žiniatinklio valdytojo įrankių naudotojai iš tiesų galės mėgautis šia reguliariąja išraiška. Jis gali rūšiuoti ir tvarkyti raktinius žodžius pagal paieškoje naudojamų žodžių skaičių.

    Tai gali būti skaitmeninė (t. Y. Tik 5 žodžiai) arba gali atitikti žodžių diapazoną (t. Y. 2 ar daugiau žodžių). Naudojant analizės duomenų rūšiavimą, tai yra viena galinga išraiška. (Šaltinis)

    10. Raskite galiojančią bazę64 eilutę PHP

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

    Jei esate „PHP dev“, tuomet tam tikru momentu jums gali tekti analizuoti kodą, ieškant bazinių64 koduotų dvejetainių objektų. Šis fragmentas gali būti taikomas visam PHP kodui ir patikrins bet kokias esamas Base64 eilutes. (Šaltinis)

    11. Galiojantis telefono numeris

    ^ + 1,3 α [-.] (a (p: d 2,3)? [-.] β d d [-. d d ir d $

    Trumpas, saldus ir taškas. Šis „regex“ kodas patvirtins bet kokią tradicinę telefono numerio sintaksę, pagrįstą pirmiausia Amerikos telefonų numeriais.

    Kadangi tai gali virsti gana sudėtingu dalyku, rekomenduoju nugriebti šį kamino siūlą, kad gautumėte išsamesnius atsakymus. (Šaltinis)

    12. „Leading & Trailing Whitespace“

    ^ [s] + | [s] + $

    Naudokite šį kodo fragmentą, kad iš eilės ištrauktumėte pirmaujančią / galinę tarpą. Tai gali būti ne didelis dalykas, tačiau kartais jis gali paveikti išvestį iš duomenų bazės arba pritaikytas kitam dokumento kodavimui. (Šaltinis)

    13. Ištraukite vaizdo šaltinį)

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

    Jei dėl kokių nors priežasčių reikia ištraukti vaizdo šaltinį iš HTML, šis kodo fragmentas yra puikus sprendimas. Nors „backend“ gali veikti sklandžiai, „Frontend“ „JS devs“ turėtų pasikliauti jQuery „.attr“ () metodu frontendui. (Šaltinis)

    14. Patvirtinkite datą DD / MM / YYYY formatu

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

    Datos yra sudėtingos, nes jos gali būti rodomos kaip teksto + numeriai arba kaip skirtingų formatų numeriai. PHP turi fantastišką datos funkciją, tačiau tai ne visada yra geriausias pasirinkimas, kai ištraukiate žaliavinę eilutę. Vietoj to naudokite šią įprastą išraišką, padarytą šiai konkrečiai datai. (Šaltinis)

    15. „YouTube“ vaizdo įrašo ID atitikimas

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

    „YouTube“ daugelį metų išlaikė tą pačią URL struktūrą, nes ji veikia. Tai taip pat populiariausia vaizdo įrašų bendrinimo svetainė žiniatinklyje, todėl „YouTube“ vaizdo įrašai yra linkę vairuoti didžiausią srautą.

    Jei reikia ištraukti „YouTube“ vaizdo įrašo ID iš URL, šis „regex“ kodas yra puikus ir turėtų puikiai veikti visiems „YouTube“ URL struktūrų variantams. (Šaltinis)

    16. Galioja ISBN

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

    Spausdintos knygos atitinka numeracijos sistemą, vadinamą ISBN. Tai gali būti gana sudėtinga, kai svarstote skirtumus tarp ISBN-10 ir ISBN-13.

    Tačiau šis neįtikėtinas fragmentas leidžia patvirtinti ISBN numerį ir patikrinti, ar jis yra ISBN10 arba 13. Visi kodai parašyti PHP, todėl tai turėtų būti ypač naudinga žiniatinklio kūrėjams. (Šaltinis)

    17. Patikrinkite pašto kodą

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

    Šio fragmento kūrėjas ne tik išlaisvino savo darbą nemokamai, bet taip pat ėmėsi laiko paaiškinti. Šį fragmentą rasite naudinga, jei suderinate tipišką 5 skaitmenų pašto kodą arba ilgesnę 9 skaitmenų versiją.

    Turėkite omenyje, kad tai pirmiausia skirta JAV pašto kodų sistemai, todėl gali reikėti koreguoti kitas šalis. (Šaltinis)

    18. Galiojantis „Twitter“ naudotojo vardas

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

    Štai labai nedidelis kodo fragmentas, skirtas atitikimui „Twitter“ naudotojų vardams, rastiems eilutėje. Ji tikrina @mention sintaksė, kuri puikiai tinka automatiškai nuskaityti „tweet“ (arba „tweets“) turinį. (Šaltinis)

    19. Kredito kortelių numeriai

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

    Kredito kortelės numerio patvirtinimui dažnai reikalinga saugi platforma, kuri talpinama kitur internete. Tačiau regex gali būti naudojamas minimaliems tipinio kredito kortelės numerio reikalavimams.

    Čia rasite išsamesnį atskirų kortelių kodų sąrašą. Tai apima „Visa“, „MasterCard“, „Discover“ ir daugelį kitų. (Šaltinis)

    20. Rasti CSS atributus

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

    Tai gali būti retas paleisti regex per CSS, bet tai nėra neįtikėtinai keista situacija.

    Šį kodo fragmentą galima naudoti norint ištraukti kiekvieną suderinamą CSS nuosavybę ir vertę iš atskirų parinkčių. Jis gali būti naudojamas dėl bet kokių priežasčių, galbūt norint peržiūrėti CSS gabalus arba pašalinti pasikartojančias savybes. (Šaltinis)

    21. HTML juostos komentarai

    Jei dėl kokių nors priežasčių turite pašalinti visus komentarus iš HTML bloko, naudokite šį regex kodą. Kartu su išraiška rasite PHP pavyzdį naudojant preg_replace. (Šaltinis)

    22. „Facebook“ profilio URL

    /(?:http:\t)\t)?(?:www\t)?free/lt/)?\t)\t (?: [*] *] * ([*] *) /

    „Facebook“ yra neįtikėtinai populiarus ir išgyveno daug skirtingų URL schemų. Esant situacijai, kai naudojate naudotojų profilio URL, gali būti naudinga išanalizuoti eilutes ir patvirtinti, kad jie tinkamai struktūrizuoti. Šis fragmentas gali tai padaryti ir puikiai tinka visoms FB stiliaus nuorodoms. (Šaltinis)

    23. Patikrinkite „Internet Explorer“ versiją

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

    „Microsoft“ perėjimas prie „Edge“ nebuvo vieningas ir daugelis žmonių vis dar pasitiki klasikine „Internet Explorer“. Kūrėjai dažnai turi patikrinti, ar IE versijos tvarko neatitikimus su atvaizdavimo varikliais.

    Šis fragmentas gali būti naudojamas „JavaScript“, norint išbandyti naršyklės agentą pagal tai, kokia „Internet Explorer“ (5-11) versija yra naudojama. (Šaltinis)

    24. Ištraukos kaina

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

    Kainos pateikiamos įvairiais formatais, kuriuose yra dešimtainių skaičių, kablelių ir valiutos simbolių. Ši reguliari išraiška gali patikrinti visus šiuos skirtingus formatus, kad ištrauktumėte kainą iš bet kurios eilutės. (Šaltinis)

    25. Pars. El. Pašto antraštė

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

    Naudodami šią vieną eilutę galite išsirinkti el. Pašto antraštę, kad ištrauktumėte “į” informacija iš antraštės. Jis gali būti naudojamas kartu su keliais el.

    Jei pageidaujate išvengti šios užduoties regex, galite pasikliauti analizavimo biblioteka. (Šaltinis)

    26. Suderinkite konkretų failo tipą

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

    Kai susiduriate su įvairiais failų formatais, pvz., .Xml, .html ir .js, jis gali padėti patikrinti failus tiek vietiniu, tiek naudotojų įkeltu būdu. Šis fragmentas ištraukia failo plėtinį, kad patikrintų, ar jis galioja iš galiojančių plėtinių, kurie gali būti keičiami, serijos. (Šaltinis)

    27. Atitinka URL eilutę

     

    Šį fragmentą galima naudoti tiek HTTPS, tiek HTTP eilutėse, kad patikrintumėte, ar tekstas atitinka tradicinį TLD domeno sintaksę. Taip pat yra paprastas šio regex įdiegimas naudojant „JavaScript“ „RegExp“. (Šaltinis)

    28. Pridėti rel =”nofollow” į Nuorodos

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

    Jei dirbate su HTML kodo partija, rankiniu darbu galima pasikartoti pakartotinėms užduotims. Reguliarios išraiškos puikiai tinka šiai progai ir jie sutaupys daug laiko.

    Šis fragmentas gali ištraukti visas inkarų nuorodas iš HTML bloko ir pridėti rel =”nofollow” kiekvienam elementui. Kūrėjas, parašęs šį kodą, buvo pakankamai malonus, kad paskelbtų neapdorotą išraišką ir darbo pavyzdį PHP.

    29. „Media Query Match“

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

    Suskirstykite CSS žiniasklaidos užklausas į jų parametrus ir savybes. Tai gali padėti jums analizuoti išorinį CSS švaresniu būdu, labiau susitelkiant ties kodo veikimu. (Šaltinis)

    30. „Google“ paieškos sintaksė

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

    Naudodami „Google“ prekės ženklo sintaksę galite sukurti savo regex kodą, skirtą ieškoti tekstui valdyti. Pliuso ženklas (+) reiškia papildomus raktinius žodžius ir minuso ženklas (-) reiškia žodžius, kurie turėtų būti ignoruojami ir pašalinami iš rezultatų.

    Tai gana sudėtingas fragmentas, bet tinkamai naudojamas, jis gali būti pagrindas kurti savo paieškos algoritmą. (Šaltinis)

    Apvyniojimas

    Kelias į „regex“ įsisavinimą yra ilgas, bet naudingas, jei laikosi su juo. Be tipiškų regex įrankių geriausias būdas mokytis yra pasikartojimas. Pabandykite kurti žiniatinklio programas, kurios remiasi šiais regex fragmentais, kad sužinotų, kaip jie veikia tikroje veikiančioje žiniatinklio programoje. Ir jei turite kitų fragmentų, kuriuos galite pasiūlyti, galite juos paskelbti toliau esančioje komentarų srityje.

    Dabar perskaitykite:

    50 Naudingi CSS fragmentai Kiekvienas dizaineris turi turėti