30 Корисни исјечци Регек кода за Веб програмере
Регуларни изрази су моћан алат који би требало да буде у сваком алату за развој програмера. Могу да се поклапају са низом знакова на основу веома сложених параметара, што вам може уштедети много времена приликом изградње динамичких веб страница.
Веб програмери се суочавају са различитим задацима него са програмерима, али многи од истих основа остају. Регуларни изрази (или регек) имају а стрма почетна крива учења, али могу бити изузетно снажна када се правилно користи.
Најтежи део је учење синтаксе и учење како да напишете сопствени регек код од нуле. Да бисте уштедели време, организовао сам 30 различитих исечака регекс кода које можете укључити у развојне пројекте. А пошто регекс није ограничен на један језик, можете да примените ове исјечке на било шта од ЈаваСцрипт до ПХП или Питхон.
1. Снага лозинке
^ (? =. * [АЗ]. * [АЗ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [аз]. * [аз]. * [аз]). 8 $
Провера јачине лозинке је често субјективна па нема апсолутно тачног одговора. Али осећам да је исечак регекса одлична полазна тачка ако не желите да напишете сопствени провјеру јачине лозинке од нуле. (Извор)
2. Хексадецимална боја
[(а-фА-Ф] | [0-9]) 3, 6
Поље веб развоја је свеприсутно са хексадецималним кодовима боја. Овај исјечак регекса може се користити за извлачење хексадецималних шифри из било којег низа за било коју сврху. (Извор)
3. Потврдите адресу е-поште
/[А-З0-9._%+-]+@[А-З0-9-]+.+.[А-З]2,4/игм
Један од најчешћих задатака за програмера је да провери да ли је стринг форматиран у стилу адресе е-поште. Постоји много различитих варијанти за постизање овог задатка, тако да ова СитеПоинт веза нуди два различита исјечка кода за провјеру синтаксе е-поште против низа. (Извор)
4. ИПв4 адреса
/((::(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\т (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ Т
Слично као и е-маил адреса је типична ИП адреса која се користи за идентификацију одређеног рачунара који приступа Интернету. Овај регуларни израз ће проверити стринг да види да ли следи синтаксу ИПв4 адресе. (Извор)
5. ИПв6 адреса
(([0-9а-фА-Ф] 1,4:) 7,7 [0-9а-фА-Ф] 1,4 | ([0-9а-фА-Ф] 1) , 4:) 1,7: | ([0-9а-фА-Ф] 1,4:) 1,6: [0-9а-фА-Ф] 1,4 | ([0-9а-фА-Ф] 1,4:) 1,5 (: [0-9а-фА-Ф] 1,4) 1,2 | ([0-9а] -фА-Ф] 1,4:) 1,4 (: [0-9а-фА-Ф] 1,4) 1,3 | ([0-9а-фА-Ф]) 1,4:) 1,3 (: [0-9а-фА-Ф] 1,4) 1,4 | ([0-9а-фА-Ф] 1,4 :) 1,2 (: [0-9а-фА-Ф] 1,4) 1,5 | [0-9а-фА-Ф] 1,4: ((: [0] -9а-фА-Ф] 1,4) 1,6): ((: [0-9а-фА-Ф] 1,4) 1,7 |:) | фе80: (: [0-9а-фА-Ф] 0,4) 0,4% [0-9а-зА-З] 1, |: :( фффф (: 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-9а-фА-Ф] 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]))
Алтернативно, можда ћете желети да проверите адресу за новију ИПв6 синтаксу помоћу овог напредног исјечка регекса. Разлика је незнатна, иако витална за развој. (Извор)
6. Тхоусандс Сепаратор
д 1,3 (? = (д 3) + (?! д)) / г
Традиционални системи нумерисања захтевају зарез, период или неку другу ознаку сваке треће цифре у већем броју. Овај редни код функционише на било ком броју и примениће било коју ознаку коју изаберете на сваку трећу цифру која се дели на хиљаде, милионе итд. (Извор)
7. Превуците ХТТП на Хиперлинк
иф (! с.матцх (/ ^ [а-зА-З] +: / / /)] с = 'хттп: //' + с;
Било да радите у ЈаваСцрипту, Руби-у или ПХП-у, овај регуларни израз може бити веома користан. Он ће проверити било који УРЛ низа да види да ли има ХТТП / ХТТПС префикс, а ако није, препредите га у складу са тим. (Извор)
8. Повуците домену са УРЛ-а
/хттпс?:\т (?:[-
Сваки домен веб сајта садржи почетни протокол (ХТТП или ХТТПС) и често поддомену плус додатну путању странице. Овај исечак можете користити за исецање кроз све то и вратити само име домена без додатних додатака. (СоурцеЛ
9. Сортирајте кључне речи по броју речи
^ [^ с] * $ одговара тачно кључној речи од 1 речи ^ [^ с] * с [^ с] * $ одговара тачно 2 речи кључне речи ^ [^ с] * \ т * одговара кључним речима од најмање 2 речи (2 и више) ^ ([^] * с) 2 [^] * $ одговара тачно 3 речи кључне речи ^ ([^]] * \ т ) 4 [^] * $ одговара кључним речима од 5 речи и више (лонгтаил)
Корисници Гоогле аналитике и алата за вебмастере ће заиста уживати у овом регуларном изразу. Може да сортира и организује кључне речи на основу броја речи које се користе у претраживању.
Ово може бити бројчано специфично (тј. Само 5 ријечи) или може одговарати низу ријечи (тј. 2 или више ријечи). Када се користи за сортирање аналитичких података ово је један снажан израз. (Извор)
10. Нађите Валид Басе64 Стринг у ПХП-у
пхп [] евал (басе64_децоде ((([А-За-з0-9 + /] 4) * ([А-За-з0-9 + /] 3 = | [А-За-з0-9 + /] 2 ==)?) 1 \ т
Ако сте ПХП дев, онда ћете у неком тренутку можда морати да анализирате код у потрази за Басе64 кодираним бинарним објектима. Овај исјечак се може примијенити на сав ПХП код и провјерити за постојеће низове Басе64. (Извор)
11. Ваљан број телефона
д 1,3? [-.]? (? (?: д 2,3)? [-.] д? д [-.]? д д
Кратко, слатко и до тачке. Овај регек код ће потврдити сваку традиционалну синтаксу телефонског броја засновану првенствено на америчком стилу телефонских бројева.
Пошто се ово може претворити у прилично компликовану тему, препоручујем да се скенира овај Стацк нит за детаљније одговоре. (Извор)
12. Леадинг & Траилинг Вхитеспаце
^ [с] + | [с] + $
Користите овај исјечак кода да бисте из низа извукли празно поље водећи / пратећи. Ово можда није велика ствар, али понекад може утицати на излаз када се извуче из базе података или примени на друго кодирање документа. (Извор)
13. Повуците извор слике)
\ Т< *[img][^\>] * [срц] * = * [\ т
Ако из неког разлога морате извући изворни извор слике из ХТМЛ-а, овај исјечак кода је савршено рјешење. Иако се може покренути глатко на позадини, ЈС девс-ови који се налазе на фронтовима требало би да се ослањају на јКуери-ов .аттр () метод за фронтенд. (Извор)
14. Потврдите датум у формату ДД / ММ / ГГГГ
^ (? :( ?: 31 (\ _ | - | \ _) (?: 0? [13578] | 1 [02])) 1 | (? :( ?: 29 | 30) (\ т (?: 0? [1,3-9] | 1 [0-2]) 2)) (? :( ?: 1 [6-9] | [2-9] д)? д 2) $ | ^ (?: 29 (| - |).) 0? 2 3 (? :(? :( ?: 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] д)?
Датуми су лукави јер се могу појавити као текст + бројеви или само као бројеви с различитим форматима. ПХП има фантастичну функцију датума, али то није увек најбољи избор када се вуче сирови низ. Уместо тога, размислите о коришћењу овог регуларног израза за ову специфичну синтаксу датума. (Извор)
15. ИоуТубе Видео ИД Матцх
/хттп:\т (?:иоуту бе ;|(?: [ас) лг2,3 .?иоутубе\т =) ([-] 11). * / ги
ИоуТубе је задржао исту структуру УРЛ-а већ годинама јер ради. То је уједно и најпопуларнија веб локација за размјену видеозаписа на вебу, тако да видеозаписи на ИоуТубе-у имају највише промета.
Ако вам је потребно да извучете ИД ИоуТубе видео снимка са УРЛ-а, овај регек код је савршен и треба да ради савршено за све варијанте ИоуТубе УРЛ структура. (Извор)
16. Валид ИСБН
б (?: ИСБН (? ::? |))? ((?: 97 [89])? 9 [дк]) б / и
Штампане књиге прате систем нумерисања познат као ИСБН. Ово може бити прилично незгодно када узмете у обзир разлике између ИСБН-10 и ИСБН-13.
Међутим, овај невероватни исечак вам омогућава да потврдите ИСБН број и проверите да ли је ИСБН10 или 13. Сав код је написан у ПХП-у тако да би се то требало показати изузетно корисним за веб програмере. (Извор)
17. Провјерите поштански број
д 5 (?: [- с] д 4)? $
Творац овог исјечка не само да је објавио свој рад бесплатно, већ је одвојио вријеме да то објасни. Овај одломак ће вам бити користан без обзира на то да ли одговара типичном 5-цифреном поштанском коду или дужој 9-цифрени верзији.
Имајте на уму да је ово првенствено намењено америчком систему поштанских бројева тако да то може захтијевати прилагодбу за друге земље. (Извор)
18. Валид Твиттер Корисничко име
/ @ ([А-За-з0-9 _] 1,15) /
Ево веома малог исечка кода за подударање са Твиттер корисничким именима пронађеним у низу. Проверава @ментион синтакса која је савршена за аутоматско скенирање садржаја твеет-а (или твитова). (Извор)
19. Бројеви кредитних картица
^ (?: 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 д 3)
Провјера броја кредитне картице често захтијева сигурну платформу која се налази на другим мјестима на интернету. Али регек се може користити за минималне захтеве типичног броја кредитне картице.
Детаљнији попис кодова за појединачне картице можете наћи овдје. То укључује Виса, МастерЦард, Дисцовер и многе друге. (Извор)
20. Пронађите ЦСС атрибуте
с * [а-зА-З -] + с * [:] 1 с [а-зА-З0-9 с. #] + [;] 1
Можда је ретко да покренете регек преко ЦСС-а, али то није необично чудна ситуација.
Овај исјечак кода може се користити за извлачење сваког одговарајућег ЦСС-а и вриједности из појединачних селектора. Може се користити из више разлога, можда да бисте прегледали делове ЦСС-а или уклонили дупле особине. (Извор)
21. Стрип ХТМЛ Цомментс
Ако из било којег разлога морате уклонити све коментаре из блока ХТМЛ-а, ово је регек код који треба користити. Заједно са изразом ћете наћи ПХП пример користећи прег_реплаце. (Извор)
22. УРЛ профила за Фацебоок
/(?:хттп:\_)?(?:ввв\т??\т (?: [в] - * * * \ т
Фацебоок је невјеројатно популаран и прошао је многе различите УРЛ шеме. У ситуацији када преузимате УРЛ-ове профила од корисника, можда би било корисно анализирати стрингове и потврдити да су правилно структурирани. Овај исечак може да уради управо то и савршен је за све линкове у стилу ФБ-а. (Извор)
23. Проверите верзију програма Интернет Екплорер
^. * МСИЕ [5-8] (?: [0-9] +)? (?!. * Тридент [5-9] 0). * $
Мицрософтов прелазак на Едге није био једногласан и многи се још увек ослањају на класични Интернет Екплорер. Програмери често морају да провере да ли постоје верзије ИЕ да би руковале недоследностима код мотора за рендеровање.
Овај исјечак се може користити у ЈаваСцрипту за тестирање агента прегледника на основу које се верзије Интернет Екплорера (5-11) користи. (Извор)
24. Извуци цену
/(\Т[0-9,]+(\т
Цена је у различитим форматима који садрже децимале, зарезе и симболе валуте. Овај регуларни израз може проверити све ове различите формате да би извукао цену из било ког низа. (Извор)
25. Анализирајте заглавље е-поште
/ / (А-З0-9._%+-]+@(?:[А-З0-9-]+\т
Са овом једном линијом кода можете парсирати кроз заглавље е-поште да бисте се извукли “до” информације из заглавља. Може се користити у тандему заједно са више е-порука.
Ако желите да избегнете регек за овај задатак, можете се ослонити на анализирање библиотеке. (Извор)
26. Одговара посебном типу
/^(.* \ т
Када се бавите различитим форматима датотека као што су .кмл, .хтмл и .јс, може вам помоћи да провјерите датотеке и локално и учитане од стране корисника. Овај исечак извлачи датотечни наставак да провери да ли је валидан из низа важећих екстензија које се могу променити по потреби. (Извор)
27. Подесите УРЛ Стринг
/[-а-зА-З0-9@:%_+.~#?&//=]2,256\т -9 @:% _ +. ~ #? & // =] *)? / Ги
Овај исјечак се може користити и за ХТТПС и ХТТП низове да би се провјерило да ли се текст подудара са традиционалном ТЛД доменом синтаксе. Ту је и једноставна имплементација овог регека користећи ЈаваСцрипт РегЕкп. (Извор)
28. Додати рел =”нофоллов” то Линкс
(] *) (хреф = "хттпс?: //) ((?! (?: (?: ввв.)?". имплоде ('| (?: ввв.)?', $ фоллов_лист). ') ) [^ "] +)" ((?!. * брел =) [^>] *) (?: [^>] *)
Ако радите са серијом ХТМЛ кода, може бити страшно применити физички рад на задатке који се понављају. Регуларни изрази су савршени за ову прилику и они ће уштедети много времена.
Овај исечак може да повуче све везе за сидрење из блока ХТМЛ-а и дода рел =”нофоллов” атрибут сваком елементу. Програмер који је написао овај код је био довољно љубазан да објави сирови израз плус радни пример у ПХП-у.
29. Подударање упита за медије
/ @ медиа ([^ ] +) ([\ т
Раздвојите упите ЦСС медија у њихове параметре и својства. Ово вам може помоћи да анализирате спољни ЦСС на чишћи начин са директнијим фокусом на функционисање кода. (Извор)
30. Синтакса Гоогле претраге
/([+-]?(?:'.+?'|".+?"|[^+\-] 1 [^] *)) / г
Можете да направите сопствени регек код за манипулисање текстом који се може претраживати помоћу Гоогле синтаксе заштитног знака. Знак плус (+) означава додатне кључне речи, а знак минус (-) означава речи које треба занемарити и уклонити из резултата.
То је прилично компликован исјечак, али се правилно користи и може послужити као основа за изградњу властитог алгоритма претраживања. (Извор)
Упаковати
Пут ка овладавању регексом је дугачак али задовољавајући ако се држите тога. Осим типичних регек алата, најбољи начин за учење је понављање. Покушајте да изградите веб апликације које се ослањају на ове исказе регека да бисте сазнали како функционишу у реалној веб апликацији. А ако имате друге исечке који вам предлажу да их поставите у области за коментаре испод.
Сада прочитајте:
50 Корисни ЦСС одломци који сваки дизајнер треба да има