⊗jsSpRELAB 133 of 294 menu

Shikimi Pozitiv dhe Negativ në Regex JavaScript

Ndonjëherë duhet të zgjidhet një detyrë e këtij lloji: gjeni vargun 'aaa' dhe zëvendësojeni atë me '!', por vetëm nëse pas 'aaa' ndodhet 'x', kurse vetë 'x' mos e zëvendësoni. Nëse përpiqemi ta zgjidhim detyrën 'drejtpërdrejt', nuk do të dalë:

'aaax baaa'.replace(/aaax/g, '!'); // kthen '! baaa', por ne donim '!x baaa'

Shikim Përpara

Për të zgjidhur detyrën nevojitet një mënyrë për të thënë se 'x' nuk duhet të zëvendësohet. Kjo bëhet duke përdorur kllapat speciale (?= ), të cilat thjesht shikojnë, por nuk e marrin me vete.

Këto kllapa quhen shikim pozitiv përpara. Pozitiv - sepse 'x' (në rastin tonë) duhet të jetë - vetëm atëherë do të ndodhë zëvendësimi.

Le t'i përdorim këto kllapa për të zgjidhur detyrën tonë:

'aaax aaab'.replace(/aaa(?=x)/g, '!'); // kthen '!x aaab'

Ekziston edhe shikim negativ përpara - (?! ) - ai, përkundrazi, thotë se diçka nuk duhet të jetë. Në shembullin vijues, zëvendësimi do të ndodhë vetëm nëse pas 'aaa' nuk ndodhet 'x':

'aaax aaab'.replace(/aaa(?!x)/g, '!'); // kthen 'aaax !b'

Shikim Prapa

Në mënyrë të ngjashme ekziston shikim pozitiv prapa - (?<= ). Në shembullin vijues zëvendësimi do të ndodhë vetëm nëse para 'aaa' ndodhet 'x':

'xaaa'.replace(/(?<=x)aaa/g, '!'); // kthen 'x!'

Ekziston gjithashtu shikim negativ prapa - (?<! ). Në shembullin vijues zëvendësimi do të ndodhë vetëm nëse para 'aaa' nuk ndodhet 'x':

'baaa'.replace(/(?<!x)aaa/g, '!'); // kthen 'b!'

Detyra Praktike

Është dhënë një varg që përmban emra funksionesh:

let str = 'func1() func2() func3()';

Merrni një varg emrash funksionesh nga vargu.

Është dhënë një varg me një tag:

let str = '<a href="" class="eee" id="zzz">';

Merrni një varg emrash të atributeve të këtij tagu.

Është dhënë një varg me variabla:

let str = '$aaa $bbb $ccc xxxx';

Merrni nënvargjet, para të cilave ndodhet simboli i dollarit.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo