Регуларни изрази у ЈаваСцрипт-у: Увод

Последње ажурирање: КСНУМКС новембра КСНУМКС
Регуларни изрази у ЈаваСцрипт-у

Добродошли у овај комплетан водич за регуларне изразе у ЈаваСцрипт-у! У овом чланку ћемо детаљно истражити шта су регуларни изрази, како се користе у ЈаваСцрипт-у и како вам могу помоћи да поједноставите и оптимизујете свој код. Од основа до практичних примера, покрићемо све што треба да знате да бисте почели да максимално користите регуларне изразе у својим ЈаваСцрипт пројектима. Па хајде да почнемо!

Увод у регуларне изразе

Регуларни изрази су обрасци претраге који се користе за проналажење и манипулацију текстом у низовима знакова. Састоје се од комбинације литералних знакова и метакарактера, који дефинишу специфична правила за проналажење подударања у тексту. Ова правила могу укључивати тражење одређених знакова, опсега знакова, понављања, алтернатива и још много тога.

У ЈаваСцрипт-у, регуларни изрази се креирају помоћу класе RegExp или коришћењем дословног /patrón/. Образац је сам регуларни израз, који је затворен између косих цртица. Погледајмо једноставан пример:

const regex = /hola/;

 

У овом примеру смо креирали регуларни израз који ће тражити стринг „здраво“ унутар текста. Сада када имамо основно разумевање шта су регуларни изрази, хајде да истражимо неке кључне концепте и напредне технике за рад са њима у ЈаваСцрипт-у.

Основна синтакса регуларних израза

Регуларни изрази у ЈаваСцрипт-у се састоје од неколико кључних елемената који нам омогућавају да дефинишемо сложеније обрасце претраге. Ови елементи укључују литералне знакове, метакарактере, класе знакова, квантификаторе, сидра и још много тога. Погледајмо неке примере ових елемената:

Дословни ликови

Дословни знакови су они који се траже онако како се појављују у тексту. На пример, регуларни израз /hola/ ће тражити секвенцу знакова „здраво“ у текстуалном низу. Важно је напоменути да су регуларни изрази осетљиви на велика и мала слова /hola/ неће одговарати „Здраво“ или „ЗДРАВО“.

Метакарактери

Метазнакови су специјални знакови који имају посебно значење у регуларним изразима. На пример, метазнак . Користи се за представљање било ког знака осим новог реда. Још један уобичајени метазнак је ^, који се користи за означавање почетка текстуалног низа. На пример, регуларни израз /^hola/ ће одговарати било ком текстуалном низу који почиње са "здраво".

Класе карактера

Класе знакова се користе за тражење било ког карактера унутар одређеног скупа. На пример, регуларни израз /[aeiou]/ ће одговарати било ком самогласнику у текстуалном низу. Такође је могуће користити опсеге знакова у класама знакова. На пример, регуларни израз /[a-z]/ одговара било којем малом слову.

Квантификатори

Квантификатори се користе за одређивање броја појављивања елемента у регуларном изразу. На пример, квантификатор * означава да се претходни елемент може појавити нула или више пута. Квантификатор + означава да се претходни елемент треба појавити једном или више пута. На пример, регуларни израз /a+/ ће одговарати једном или више "а" у текстуалном низу.

Анцхорс

Сидра се користе за означавање позиције подударања унутар текстуалног низа. На пример, сидро \b одговара граници речи. На пример, регуларни израз /bholab/ ће одговарати само речи "здраво" као а пуна реч, без подударања дужих речи које садрже „здраво“ као део њих.

Ово је само неколико примера основне синтаксе регуларних израза у Јаваскрипту. Како будемо напредовали кроз овај чланак , истражићемо напредније концепте и технике за рад са регуларним изразима у Јаваскрипту.

Основна претрага подударања

Једна од најчешћих операција које се обављају са регуларним изразима је тражење подударања у текстуалном низу. У ЈаваСцрипт-у можемо користити метод search() да бисте пронашли прво подударање регуларног израза у текстуалном низу. Погледајмо пример:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const indice = texto.search(regex);
console.log(indice); // 7

У овом примеру смо користили метод search() да пронађе прво подударање регуларног израза /mundo/ у текстуалном низу "Здраво, свет!" Метода search() враћа индекс првог пронађеног подударања, или -1 ако није пронађено подударање.

Поред методе search(), ЈаваСцрипт такође пружа друге корисне методе за рад са регуларним изразима, као што су match(), replace(), split() y test(). Свака од ових метода има своју сврху и може се користити у складу са вашим специфичним потребама.

Коришћење модификатора и заставица

У ЈаваСцрипт-у, регуларни изрази могу да садрже модификаторе и заставице које омогућавају флексибилније и прилагођеније претраге. Модификатори се додају на крај регуларног израза и мењају његово понашање. Неки од најчешћих модификатора су:

ја (неосетљив)

Модификатор i се користи за обављање претраге без обзира на велика и мала слова. На пример, регуларни израз /hola/i ће одговарати и „здраво“ и „здраво“ или „здраво“.

г (глобално)

Модификатор g Користи се за обављање глобалне претраге на целом текстуалном низу, уместо да се заустави на првом пронађеном подударању. На пример, регуларни израз /a+/g ће одговарати свим појављивањима једног или више "а" у текстуалном низу.

  Како инсталирати и конфигурисати Олламу за покретање АИ модела на вашем рачунару

м (вишелинијски)

Модификатор m Користи се за обављање претраге на више редова унутар текстуалног низа. На пример, регуларни израз /^hola/m ће одговарати речи "здраво" на почетку сваког реда у текстуалном низу.

Поред модификатора, ЈаваСцрипт такође дозвољава употребу заставица у регуларним изразима. Заставице се додају после друге косе црте када креирате регуларни израз помоћу класе RegExp. Неке од најчешћих застава су:

ја (неосетљив)

Као модификатор i, застава i врши претрагу без обзира на велика и мала слова. На пример, регуларни израз new RegExp("hola", "i") ће одговарати и „здраво“ и „здраво“ или „здраво“.

г (глобално)

Као модификатор g, застава g врши глобалну претрагу целог текстуалног низа. На пример, регуларни израз new RegExp("a+", "g") ће одговарати свим појављивањима једног или више "а" у текстуалном низу.

м (вишелинијски)

Као модификатор m, застава m врши претрагу на више редова унутар текстуалног низа. На пример, регуларни израз new RegExp("^hola", "m") ће одговарати речи "здраво" на почетку сваког реда у текстуалном низу.

Коришћење модификатора и заставица у регуларним изразима у Јаваскрипту може бити веома корисно за прилагођавање претрага различитим случајевима и специфичним захтевима. Експериментишите са њима и откријте како можете максимално искористити ове функције у свом коду.

Метазнакови и специјални знакови

Метазнакови и специјални знакови су кључни елементи у регуларним изразима који нам омогућавају да вршимо снажније и флексибилније претраге. Већ смо поменули неке метакарактере, као нпр . y ^, али постоји много више које можете користити у својим регуларним изразима. Погледајмо неке од најчешћих метакарактера и специјалних знакова:

. (тачка)

Металик . Користи се за представљање било ког знака осим новог реда. На пример, регуларни израз /h.t/ ће одговарати „шешир“, „вруће“, „погодити“ и било коју другу реч од три слова која почиње са „х“ и завршава се са „т“.

\ (обрнута коса црта)

Обрнута коса црта се користи за избегавање специјалних знакова у регуларном изразу. На пример, ако желите да тражите литералну тачку у текстуалном низу, морате је избећи користећи обрнуту косу црту. Регуларни израз /www\.google\.com/ ће одговарати текстуалном низу „ввв.гоогле.цом“.

\д (цифра)

Металик \d се користи за тражење било које цифре од 0 до 9. На пример, регуларни израз /\d+/ ће одговарати било ком броју цифара или више њих у текстуалном низу.

\в (алфанумерички знак)

Металик \w се користи за тражење било ког алфанумеричког карактера (велика и мала слова, цифре и доње црте). На пример, регуларни израз /\w+/ ће одговарати било којој речи од једног или више алфанумеричких знакова у текстуалном низу.

Ово је само неколико примера метакарактера и специјалних знакова које можете да користите у својим регуларним изразима. Како се боље упознате са регуларним изразима у ЈаваСцрипт-у, открићете широк избор опција за прецизирање ваших претрага и манипулација текстом.

Класе и опсези знакова

Класе знакова су још један кључни елемент у регуларним изразима који нам омогућавају да тражимо било који знак унутар одређеног скупа. У ЈаваСцрипт-у можемо користити заграде [] за дефинисање класе карактера. Погледајмо неке примере класа знакова и опсега:

[аеиоу]

Класа карактера [aeiou] одговара било ком самогласнику у текстуалном низу. На пример, регуларни израз /[aeiou]/ ће одговарати "а", "е", "и", "о" или "у" у текстуалном низу.

[аз]

Распон карактера [a-z] одговара било којем малом слову енглеске абецеде. На пример, регуларни израз /[a-z]/ одговара било којем малом слову у текстуалном низу.

[КСНУМКС-КСНУМКС]

Распон карактера [0-9] одговара било којој цифри од 0 до 9 у текстуалном низу. На пример, регуларни израз /[0-9]/ одговара било ком једноцифреном броју.

[А-З-з]

Класа карактера [A-Za-z] одговара било којем великом или малом слову енглеске абецеде. На пример, регуларни израз /[A-Za-z]/ ће одговарати било ком слову у текстуалном низу.

Класе и опсези знакова нам омогућавају да дефинишемо специфичне скупове знакова за претрагу у регуларном изразу. Користите их да бисте своје претраге прилагодили својим посебним потребама и ограничењима.

Квантификатори и понављања

Квантификатори и понављања су кључни елементи у регуларним изразима који нам омогућавају да наведемо број појављивања елемента у текстуалном низу. Хајде да погледамо неке од најчешћих квантификатора у ЈаваСцрипт-у:

* (звездица)

Квантификатор * означава да се претходни елемент може појавити нула или више пута. На пример, регуларни израз /a*/ ће одговарати нула или више 'а' у текстуалном низу.

  Амбициозна куповина компаније Курсор од стране СпејсИкс-а

+ (више)

Квантификатор + означава да се претходни елемент треба појавити једном или више пута. На пример, регуларни израз /a+/ ће одговарати једном или више "а" у текстуалном низу.

? (питање)

Квантификатор ? означава да се претходни елемент може појавити нула или једном. На пример, регуларни израз /colou?r/ одговараће и „боји“ и „боји“.

{н} (тачно н пута)

Квантификатор {n} означава да се претходни елемент мора појавити тачно н пута. На пример, регуларни израз /a{3}/ ће одговарати тачно три "а" у текстуалном низу.

{н,} (најмање н пута)

Квантификатор {n,} означава да се претходни елемент мора појавити најмање н пута. На пример, регуларни израз /a{2,}/ ће одговарати два или више 'а' у текстуалном низу.

{н,м}

Квантификатор {n,m} означава да се претходни елемент мора појавити најмање н пута и највише м пута. На пример, регуларни израз /a{2,4}/ ће одговарати два, три или четири "а" у текстуалном низу.

Ово је само неколико примера квантификатора које можете користити у својим регуларним изразима. Квантификатори нам омогућавају да наведемо обрасце понављања у текстуалним претрагама и манипулацијама, што олакшава издвајање специфичних информација из текстуалних низова.

Сидра и границе речи

Сидра и границе речи су елементи који нам омогућавају да означимо позицију подударања унутар текстуалног низа. Ови елементи су посебно корисни када желимо да тражимо целе речи или да се уверимо да је подударање на почетку или крају реда. Погледајмо неке примере сидра и граница речи:

\б (граница речи)

Ограничење речи \b одговара граници између алфанумеричког знака и неалфанумеричког карактера. На пример, регуларни израз /\bjavascript\b/ ће одговарати само речи „јавасцрипт“ као целој речи, не подударајући се са дужим речима које садрже „јавасцрипт“ као део њих.

^ (почетак реда)

Карактер ^ Користи се за означавање почетка реда у текстуалном низу. На пример, регуларни израз /^hola/ ће одговарати речи "здраво" на почетку сваког реда у текстуалном низу.

$ (крај реда)

Карактер $ Користи се за означавање краја реда у текстуалном низу. На пример, регуларни израз /mundo$/ ће одговарати речи "свет" на крају сваког реда у текстуалном низу.

\А (почетак текста)

Карактер \A Користи се за означавање почетка целог текста у текстуалном низу, а не само почетка реда. На пример, регуларни израз /^\AHola/ ће одговарати речи „Здраво“ на почетку целог текста.

\З (крај текста)

Карактер \Z се користи да означи крај целог текста у текстуалном низу, а не само крај реда. На пример, регуларни израз /Mundo\Z/ одговараће речи „Свет“ на крају целог текста.

Сидра и границе речи нам омогућавају да тражимо подударања на одређеним локацијама унутар текстуалног низа, што може бити корисно у ситуацијама када желимо да осигурамо да је подударање на одређеној позицији.

Групе и хватања

Групе и хватања су напредни елементи у регуларним изразима који нам омогућавају да групишемо подизразе и да их ухватимо за каснију употребу. Хајде да видимо како функционишу групе и снимања:

( ) (заграде)

Заграде су Користе се за груписање подизрази у регуларном изразу. На пример, регуларни израз /(d{2})-(d{2})-(d{4})/ se користи се за тражење датума у формату „дд-мм-гггг. Групе ( ) Они нам омогућавају да засебно ухватимо вредности дана, месеца и године.

\1, \2, \3 (групне референце)

Групне референце се користе за упућивање на претходно снимљене групе у регуларном изразу. На пример, регуларни израз /(\w+) \1/ ће одговарати било којој речи иза које следи иста реч која се понавља. На пример, „здраво здраво“, „светски свет“ итд.

?: (група која не снима)

Симбол ?: Користи се за креирање група које се не хватају. Ове групе се користе када желимо да групишемо подизразе, али не желимо да ухватимо резултат. На пример, регуларни израз /https?:\/\/(?:www\.)?google\.com/ подудараће се и са „хттп://ввв.гоогле.цом“ и „хттпс://гоогле.цом“, али ће обухватити само релевантни део УРЛ адресе.

Групе и снимања нам омогућавају да структурирамо и организујемо наше регуларне изразе на ефикаснији и читљивији начин. Такође пружају могућност снимања одређених вредности за каснију употребу у нашим апликацијама.

Корисне методе за рад са регуларним изразима

ЈаваСцрипт пружа неколико корисних метода за рад са регуларним изразима. Ове методе нам омогућавају да изводимо уобичајене операције као што су претраживање, замена и подела текстуалних низова помоћу регуларних израза. Погледајмо неке од ових метода:

матцх()

Метода match() Користи се за проналажење свих подударања регуларног израза у текстуалном низу и враћање низа са резултатима. на пример:

const texto = "¡Hola, mundo!";
const regex = /o/g;
const coincidencias = texto.match(regex);
console.log(coincidencias); // ["o", "o"]

У овом примеру смо користили метод match() да бисте пронашли сва подударања регуларног израза /o/g у текстуалном низу "Здраво, свет!" Метода match() враћа низ са свим пронађеним подударањима.

  Комплетан водич за претрагу у реалном времену у Laravel-у

заменити ()

Метода replace() се користи за замену подударања регуларног израза у текстуалном низу новом вредношћу. на пример:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const nuevoTexto = texto.replace(regex, "amigo");
console.log(nuevoTexto); // "¡Hola, amigo!"

У овом примеру смо користили метод replace() да замени подударање регуларног израза /mundo/ у текстуалном низу "Здраво, свет!" за реч "пријатељ". Метода replace() враћа нови текстуални низ са извршеним заменама.

разделити()

Метода split() користи се за раздвајање текстуалног низа у низ подстрингова користећи регуларни израз као сепаратор. на пример:

const texto = "Hola,mundo,amigo";
const regex = /,/g;
const subcadenas = texto.split(regex);
console.log(subcadenas); // ["Hola", "mundo", "amigo"]

У овом примеру смо користили метод split() да бисте поделили текстуални низ „Здраво, свет, пријатељу“ у низ подстрингова користећи регуларни израз /,/g као сепаратор. Метода split() враћа низ са резултујућим подстринговима.

тест()

Метода test() Користи се за проверу да ли регуларни израз има подударања у текстуалном низу. Метод се враћа true ако има поклапања и false иначе. на пример:

const texto = "Hola, mundo!";
const regex = /mundo/;
const resultado = regex.test(texto);
console.log(resultado); // true

У овом примеру смо користили метод test() да проверите да ли је регуларни израз /mundo/ има подударања у текстуалном низу "Здраво, свет!". Метода test() вратити true јер постоји случајност.

Ово су само неке од најчешћих метода за рад са регуларним изразима у ЈаваСцрипт-у. Свака од ових метода има своју сврху и може се користити према вашим специфичним потребама. Експериментишите са њима и откријте како вам могу олакшати и убрзати рад са регуларним изразима.

Често постављана питања

Шта су регуларни изрази у Јаваскрипту? Регуларни изрази у Јаваскрипту су обрасци претраживања који се користе за проналажење и манипулацију текстом у низовима карактера.

Како направити регуларне изразе у ЈаваСцрипт-у? Регуларни изрази у ЈаваСцрипт-у се креирају помоћу класе RegExp или коришћењем дословног /patrón/.

Која је разлика између модификатора и заставица у регуларним изразима? Модификатори се додају на крај регуларног израза и мењају његово понашање. Заставице се додају после друге косе црте када креирате регуларни израз помоћу класе RegExp.

Која је разлика између методе match() и метод test()? Метода match() Користи се за проналажење свих подударања регуларног израза у текстуалном низу и враћа низ са резултатима. Метода test() Користи се за проверу да ли регуларни израз има подударања у текстуалном низу и враћа логичку вредност.

Како могу да ухватим одређене вредности користећи групе у регуларном изразу? Групе ( ) у регуларном изразу вам омогућавају да ухватите одређене подизразе. Затим можете референцирати ове групе користећи референце \1, \2, Итд

Које методе могу да користим за рад са регуларним изразима у ЈаваСцрипт-у? Неке корисне методе за рад са регуларним изразима у ЈаваСцрипт-у су match(), replace(), split() y test(). Свака од ових метода има своју сврху и може се користити у складу са вашим специфичним потребама.

Закључак

Регуларни изрази су моћан алат за рад са текстом у Јаваскрипту. Разумевање основа , синтаксе и напредних техника регуларних израза омогућиће вам да ефикасно и прецизно претражујете, замењујете и манипулишете текстуалним низовима. Од основног подударања до коришћења модификатора, група и других корисних метода, научили сте како да извучете максимум из регуларних израза у својим Јаваскрипт пројектима.

Не заборавите да вежбате и експериментишете са различитим обрасцима и случајевима коришћења како бисте ојачали своје разумевање и познавање регуларних израза. Не оклевајте да користите регуларне изразе да бисте побољшали ефикасност и квалитет свог кода!