30 Noderīgi Regex koda fragmenti tīmekļa izstrādātājiem
Regulāras izteiksmes ir spēcīgs rīks, kas ir katrā izstrādātāja rīkjoslā. Tie var būt pretrunā ar virkni rakstzīmju, pamatojoties uz ļoti sarežģītiem parametriem, kas var ietaupīt daudz laika, veidojot dinamiskas tīmekļa vietnes.
Tīmekļa izstrādātāji saskaras ar dažādiem uzdevumiem nekā programmatūras izstrādātāji, bet daudzi no tiem pašiem koda pamatiem paliek. Regulāras izteiksmes (vai. \ T regex) ir a stāvas sākotnējās mācīšanās līkne, bet viņi var būt ārkārtīgi spēcīgs, ja to izmanto pareizi.
Sarežģītākā daļa ir sintakses apgūšana un mācīšanās veidot savu regex kodu no jauna. Lai ietaupītu laiku, esmu organizējis 30 dažādus regex koda fragmentus, kurus varat iekļaut attīstības projektos. Un tā kā regex nav tikai viena valoda, šos fragmentus varat lietot kaut ko no JavaScript uz PHP vai Python.
1. Paroles stiprums
^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [az]. * [az]. * [az]). 8 $
Paroles stiprības pārbaude bieži ir subjektīva, tāpēc nav absolūtas pareizas atbildes. Bet es uzskatu, ka šis regex fragments ir lielisks sākumpunkts, ja nevēlaties rakstīt savu paroles stipruma pārbaudītāju no jauna. (Avots)
2. Heksadecimālā krāsa
# ([a-fA-F] | [0-9]) 3, 6
Tīmekļa izstrādes joma ir visuresoša ar sešu krāsu kodiem. Šo regex fragmentu var izmantot, lai jebkuram mērķim izvilktu hex koda atbilstību no jebkuras virknes. (Avots)
3. Apstipriniet e-pasta adresi
/ ViisilA-Z0-9._%+- ]+@liamentA-Z0-9-)+.+. [A-Z ]2,4/igm
Viens no visizplatītākajiem izstrādātāja uzdevumiem ir pārbaudīt, vai virkne ir formatēta e-pasta adreses stilā. Lai izpildītu šo uzdevumu, ir daudz dažādu variantu, tāpēc šī vietnes saites saite piedāvā divus atšķirīgus koda fragmentus, lai pārbaudītu e-pasta sintaksi pret virkni. (Avots)
4. IPv4 adrese
(?:(?:25 P.0-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
Līdzīgi kā e-pasta adrese ir tipiska IP adrese, ko izmanto, lai noteiktu konkrētu datoru, kas piekļūst internetam. Šī regulārā izteiksme pārbaudīs virkni, lai redzētu, vai tā atbilst IPv4 adreses sintaksei. (Avots)
5. IPv6 adrese
(([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 (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īvi, iespējams, vēlēsities pārbaudīt jaunākās IPv6 sintakses adresi ar šo uzlaboto regex fragmentu. Atšķirība ir neliela, kaut arī būtiska attīstības laikā. (Avots)
6. Tūkstošiem atdalītāju
/ d 1,3 (α = (d 3) + (?! d)) / g
Tradicionālajām numerācijas sistēmām ir vajadzīgs komats, periods vai kāds cits zīme katru trešo ciparu lielā skaitā. Šis regex kods darbojas uz jebkura numura, un katrs trešais cipars, kas atdala tūkstošiem, miljoniem utt., Piemēros jebkuru atzīmi.
7. Piesaistiet HTTP hipersaitei
ja (! s.match (/ ^ [a-zA-Z] +: /)) s = 'http: //' + s;
Vai jūs strādājat JavaScript, Ruby vai PHP, šī regulārā izteiksme var izrādīties ļoti noderīga. Tā pārbaudīs jebkuru URL virkni, lai redzētu, vai tai ir HTTP / HTTPS prefikss, un, ja nē, piesaistiet to atbilstoši. (Avots)
8. Pavelciet domēnu no URL
/(??\t + +????\t++??\t
Katrā tīmekļa vietnes domēnā ir sākotnējais protokols (HTTP vai HTTPS) un bieži vien apakšdomēns un papildu lapas ceļš. Jūs varat izmantot šo fragmentu, lai samazinātu visu šo un atgrieztu tikai domēna vārdu bez papildu frills. (SourceL
9. Kārtot atslēgvārdus pēc Word Count
^ [^ s] * $ atbilst tieši 1 vārda atslēgvārdam ^ [^ s] * s [^ s] * $ atbilst tieši 2 vārdu atslēgvārdam ^ [^ s] * s [^ s] * atbilst vismaz 2 vārdiem atbilstošiem atslēgvārdiem (2 un vairāk) ^ ([^ s] *) 2 [^ s] * $ atbilst tieši 3 vārdu atslēgvārdam ^ ([^ s] *). ) 4 [^ s] * $ atbilst 5 vārdiem un vairāk atslēgvārdiem (longtail)
Google Analytics un tīmekļa pārziņa rīku lietotāji patiešām izbaudīs šo regulāro izteiksmi. Tā var sakārtot un organizēt atslēgvārdus, pamatojoties uz meklēšanā izmantoto vārdu skaitu.
Tas var būt skaitliski specifisks (t.i., tikai 5 vārdi), vai tas var atbilst vārdu klāstam (t.i., 2 vai vairākiem vārdiem). Ja to izmanto, lai šķirotu analītikas datus, tas ir viens spēcīgs izteiksme. (Avots)
10. Atrast derīgu Base64 virkni PHP
php [eval] (base64_decode ('(([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-z0-9 + /] 2 ==)?) 1 \ t
Ja jūs esat PHP dev, tad kādā brīdī jums var būt nepieciešams analizēt kodu, meklējot Base64 kodētus bināros objektus. Šo fragmentu var izmantot visiem PHP kodiem un pārbaudīs, vai nav esošo Base64 virkņu. (Avots)
11. Derīgs tālruņa numurs
^ + d 1,3 a [-.] (a (a: d 2,3)? [-.]? d d [-. d d un d $
Īss, salds un līdz galam. Šis regex kods apstiprinās jebkuru tradicionālo tālruņa numuru sintaksi, kuras pamatā galvenokārt ir amerikāņu tālruņu numuri.
Tā kā tas var pārvērsties par diezgan sarežģītu tēmu, es iesaku šo Stack pavedienu novilkt, lai iegūtu sīkākas atbildes. (Avots)
12. Leading & Trailing Whitespace
^ [s] + | [s] + $
Izmantojiet šo koda fragmentu, lai no virknes izņemtu vadošo / aizmugurējo atstarpi. Tas var nebūt liels risinājums, bet dažreiz tas var ietekmēt izeju, kad tiek izvilkts no datu bāzes vai piemērots citam dokumenta kodējumam. (Avots)
13. Pavelciet attēla avotu)
\ T< *[img][^\>] * [src] * = * ["" 0,1 ([^ ""] *)
Ja kāda iemesla dēļ jums ir nepieciešams izvilkt attēla avotu tieši no HTML, šis koda fragments ir ideāls risinājums. Lai gan tā var darboties nevainojami uz aizmugures, priekšpuses JS devs būtu jāpaļaujas uz jQuery .attr () metodi frontendam. (Avots)
14. Datuma apstiprināšana DD / MM / GGGG formātā
^ (? :( ?: 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 | 2 [0-8]) (/ | - |) (? :( ?: 0? [1-9]) | (?: 1 [0-2])) 4 (? :( ?: 1 [6-9] | [2-9] d)?
Datumi ir sarežģīti, jo tie var parādīties kā teksta + numuri vai vienkārši kā numuri ar dažādiem formātiem. PHP ir fantastiska datuma funkcija, bet tas ne vienmēr ir labākā izvēle, kad velkot izejvielu virkni. Tā vietā izmantojiet šo regulāro izteiksmi, kas veikta šai konkrētajai datuma sintaksei. (Avots)
15. YouTube video ID atbilstība
/http: / / / /?outy.u\tlv/)\t???????????????????\t =) ([w -] 11). * / gi
YouTube gadiem ilgi ir saglabājis tādu pašu URL struktūru, jo tā darbojas. Tā ir arī populārākā video koplietošanas vietne tīmeklī, tāpēc YouTube videoklipi mēdz vadīt vislielāko datplūsmu.
Ja jums ir nepieciešams izvilkt YouTube videoklipa ID no URL, šis regex kods ir ideāls, un tas ir ideāli piemērots visiem YouTube URL struktūru variantiem. (Avots)
16. Derīgs ISBN
b (?: ISBN (? ::? |))? ((?: 97 [89])? [dx])
Iespiestās grāmatas atbilst numurēšanas sistēmai, ko sauc par ISBN. Tas var kļūt diezgan sarežģīts, ja uzskatāt, ka ir atšķirības starp ISBN-10 un ISBN-13.
Tomēr šis neticamais fragments ļauj jums apstiprināt ISBN numuru un pārbaudīt, vai tas ir ISBN10 vai 13. Visi kods ir uzrakstīts PHP, tāpēc tas izrādīsies ārkārtīgi noderīgs tīmekļa izstrādātājiem. (Avots)
17. Pārbaudiet pasta indeksu
^ d 5 (?: [- s] d 4)?
Šā fragmenta veidotājs ne tikai atbrīvoja savu darbu bez maksas, bet arī aizņēma laiku, lai to izskaidrotu. Jūs atradīsiet šo fragmentu noderīgu, ja jūs atbilstat tipiskam 5 ciparu pasta indeksam vai garākai 9 ciparu versijai.
Paturiet prātā, ka tas ir domāts galvenokārt Amerikas pasta indeksu sistēmai, tāpēc tas var prasīt korekcijas citām valstīm. (Avots)
18. Derīgs Twitter lietotājvārds
/ @ ([A-Za-z0-9 _] 1,15) /
Šeit ir ļoti neliels koda fragments, lai saskaņotu to ar čivināt lietotājvārdiem, kas atrodami virknē. Tā pārbauda @mention sintakse, kas ir ideāli piemērota čivinātāja (vai tweets) satura automātiskai skenēšanai. (Avots)
19. Kredītkaršu numuri
^ (?: 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) $
Kredītkartes numura apstiprināšanai bieži nepieciešama droša platforma, kas izvietota citur tiešsaistē. Bet regex var izmantot minimālās prasības par tipisku kredītkartes numuru.
Plašāks atsevišķu karšu kodu saraksts ir atrodams šeit. Tas ietver Visa, MasterCard, Discover un daudzus citus. (Avots)
20. Atrodiet CSS atribūtus
^ [a-zA-Z-] + s * [:] 1 s [a-zA-Z0-9] #] + [;] 1
Tas var būt reti, lai palaistu regex pār CSS, bet tas nav neticami nepāra situācija.
Šo koda fragmentu var izmantot, lai izņemtu visus atbilstošos CSS īpašumus un vērtību no atsevišķiem selektoriem. To var izmantot jebkura iemesla dēļ, iespējams, apskatot CSS gabalus vai noņemot dublējošās īpašības. (Avots)
21. HTML komentāri
Ja kāda iemesla dēļ jums ir nepieciešams noņemt visus komentārus no HTML bloka, tas ir izmantotais regex kods. Kopā ar izteiksmi jūs atradīsiet PHP piemēru, izmantojot preg_replace. (Avots)
22. Facebook profila URL
/(?:http:\t)\t)?(?:www.)?facebook\t)\t)\t)\t (?: [w]] /) * ([w]] *) /
Facebook ir ļoti populārs un ir izgājis daudzas dažādas URL shēmas. Situācijā, kad lietojat profila URL no lietotājiem, var būt lietderīgi analizēt virknes un apstiprināt, ka tās ir pareizi strukturētas. Šis fragmentu var izdarīt tieši tā, un tas ir ideāli piemērots visām FB stila saitēm. (Avots)
23. Pārbaudiet Internet Explorer versiju
*. * MSIE [5-8] (?: [0-9] +)? (?!. * Trident / [5-9] 0). * $
Microsoft pārcelšanās uz Edge nav vienprātīga, un daudzi cilvēki joprojām paļaujas uz klasisko Internet Explorer. Izstrādātājiem bieži ir jāpārbauda IE versijas, lai apstrādātu neatbilstības ar dzinēju atveidošanu.
Šo fragmentu var izmantot JavaScript, lai pārbaudītu pārlūkprogrammas aģentu, pamatojoties uz to, kura Internet Explorer versija (5-11) tiek izmantota. (Avots)
24. Izvilkuma cena
/(\T [0-9, ]+(\t [0-9 ]2)?)/
Cenu noteikšana notiek dažādos formātos, kas satur decimāldaļas, komatus un valūtas simbolus. Šī regulārā izteiksme var pārbaudīt visus šos dažādos formātus, lai izņemtu cenu no jebkuras virknes. (Avots)
25. Parsēt e-pasta galveni
(A-Z0-9._%+- ]+@(?: P.A-Z0-9- ]+\t
Izmantojot šo vienoto kodu, varat izanalizēt e-pasta galveni, lai izvilktu “uz” informāciju no galvenes. To var izmantot kopā ar vairākiem e-pastiem, kas apvienoti kopā.
Ja vēlaties izvairīties no šī uzdevuma regex, jūs varat paļauties uz analīzes bibliotēku. (Avots)
26. Saskaņot konkrētu faila tipu
/ ^(.*\t(?!(htm|html|class|js)$))? [^^]
Kad jūs strādājat ar dažādiem failu formātiem, piemēram, .xml, .html un .js, tas var palīdzēt pārbaudīt failus gan vietējā, gan lietotāju augšupielādē. Šis fragments izvelk faila paplašinājumu, lai pārbaudītu, vai tas ir derīgs no derīgiem paplašinājumiem, kurus var mainīt pēc vajadzības. (Avots)
27. Atbilstiet URL virknei
(utt-a-zA-Z0-9@:%_\t -9 @:% _ +. ~ #? & // =] *)? / Gi
Šo fragmentu var izmantot gan HTTPS, gan HTTP virknēm, lai pārbaudītu, vai teksts atbilst tradicionālajai TLD domēna sintaksei. Pastāv arī vienkārša šīs regex ieviešana, izmantojot JavaScript RegExp. (Avots)
28. Pievienojiet rel =”nofollow” uz Saites
(] *) (href = "https?: //) ((?! (?: (?: www)?". implode ('| (?: www:)?', $ follow_list). ') ) [^ "] +)" ((?!. * brel =) [^>] *) (?: [^>] *)>
Ja jūs strādājat ar HTML koda partiju, var būt grūts, lai atkārtotu uzdevumu veikšanai izmantotu manuālo darbu. Regulāri izteicieni ir ideāli piemēroti šim gadījumam, un viņi ietaupīs daudz laika.
Šis fragments var vilkt visas enkura saites no HTML bloka un pievienot pielikumu rel =”nofollow” katram elementam. Izstrādātājs, kas rakstīja šo kodu, bija pietiekami laipns, lai publicētu neapstrādātu izteiksmi un darba piemēru PHP.
29. Mediju vaicājuma atbilstība
/ @ mediji ([^ ] +) ([S] +?) s * / g
Sadaliet CSS mediju vaicājumus savos parametros un īpašībās. Tas var palīdzēt jums analizēt ārējo CSS tīrākā veidā, tieši koncentrējoties uz koda darbību. (Avots)
30. Google meklēšanas sintakse
/( [+- ]?(?:'.+?'|".+?"| [^+]] 1 [^] *)) / g
Jūs varat izveidot savu regex kodu, lai manipulētu ar meklējamo tekstu, izmantojot Google preču zīmes sintaksi. Pluss zīme (+) apzīmē papildu atslēgvārdus un mīnusa zīme (-) apzīmē vārdus, kas būtu ignorējami un noņemti no rezultātiem.
Tas ir diezgan sarežģīts fragments, bet tas tiek izmantots pareizi, un tas var būt pamats sava meklēšanas algoritma veidošanai. (Avots)
Satīt
Ceļš uz regex apgūšanu ir garš, bet atalgojošs, ja pieturaties pie tā. Papildus tipiskiem regex rīkiem labākais veids, kā mācīties, ir atkārtošanās. Mēģiniet veidot tīmekļa lietojumprogrammas, kas balstās uz šiem regex fragmentiem, lai uzzinātu, kā tās darbojas reālā funkcionējošā tīmekļa lietotnē. Un, ja jums ir citi fragmenti, kas liek domāt, ka varat tos publicēt tālāk norādītajā komentāru apgabalā.
Tagad lasiet:
50 Noderīgi CSS fragmenti Katram dizainerim ir jābūt