⊗jsSpREESCh 99 of 294 menu

Ekranizimi i Simboleve Speciale në Regex JavaScript

Supozoni se duam që simboli special të përfaqësojë vetveten. Për këtë ai duhet të ekranizohet duke përdorur backslash. Le të shohim me shembuj.

Shembull

Në shembullin vijues, autori i regex donte që modeli i kërkimit të dukej kështu: shkronja 'a', pastaj plus '+', pastaj shkronja 'x'. Megjithatë, autori i kodit nuk e ka ekranizuar simbolin '+' dhe për këtë arsye modeli i kërkimit në të vërtetë duket kështu: shkronja 'a' një ose më shumë herë, pastaj shkronja 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a+x/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

'a+x ! ! !'

Shembull

Tani autori e ka ekranizuar plusin me backslash. Tani modeli i kërkimit duket siç duhet: shkronja 'a', pastaj plus '+', pastaj shkronja 'x'.

let str = 'a+x ax aax aaax'; let res = str.replace(/a\+x/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

'! ax aax aaax'

Shembull

Në këtë shembull, modeli duket kështu: shkronja 'a', pastaj pikë '.', pastaj shkronja 'x':

let str = 'a.x abx azx'; let res = str.replace(/a\.x/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

'! abx azx'

Shembull

Në shembullin vijues autori harroi të ekranizonte pikën dhe nën regex ranë të gjitha nënvargjet, sepse pika e paekranizuar përfaqëson çdo simbol:

let str = 'a.x abx azx'; let res = str.replace(/a.x/g, '!');

Si rezultat, në variabël do të shkruhet si më poshtë:

'! ! !'

Vërejtje

Kushtojini vëmendje faktit që nëse harroni backslash për pikën (kur ajo duhet të përfaqësojë vetveten) - kjo mund edhe të mos vihet re:

'a.x'.replace(/a.x/g, '!'); // kthen '!', siç donim

Vizualisht funksionon si duhet (pasi pika përfaqëson çdo simbol, përfshirë edhe pikën e zakonshme '.'). Por nëse ndryshojmë vargun, ku ndodhin zëvendësimet - do të shohim gabimin tonë:

'a.x abx azx'.replace(/a.x/g, '!'); // kthen '! ! !', kurse pritej '! abx azx'

Lista e simboleve speciale dhe të zakonshme

Nëse ekranizoni një simbol të zakonshëm - asgjë e tmerrshme nuk do të ndodhë - ai prapë do të përfaqësojë vetveten. Përjashtim - shifrat, ato nuk mund të ekranizohen.

Shpesh lind dyshimi nëse një simbol i caktuar është special. Disa njerëz arrijnë në atë pikë që të ekranizojnë të gjitha simbolet të dyshimtë me radhë. Megjithatë, kjo është praktikë e keqe (e bën regex të ndotur me backslashe).

Janë simbole speciale: $ ^ . * + ? \ / {} [] () |

Nuk janë simbole speciale: @ : , ' " ; - _ = < > % # ~ `& !

Detyra praktike

Është dhënë vargu:

let str = 'a.a aba aea';

Shkruani një regex që do të gjejë vargun 'a.a', pa kapur pjesën tjetër.

Është dhënë vargu:

let str = '2+3 223 2223';

Shkruani një regex që do të gjejë vargun '2+3', pa kapur pjesën tjetër.

Është dhënë vargu:

let str = '23 2+3 2++3 2+++3 345 567';

Shkruani një regex që do të gjejë vargjet '2+3', '2++3', '2+++3', pa kapur pjesën tjetër (+ mund të jetë çdo numër).

Është dhënë vargu:

let str = '23 2+3 2++3 2+++3 445 677';

Shkruani një regex që do të gjejë vargjet '23', '2+3', '2++3', '2+++3', pa kapur pjesën tjetër.

Është dhënë vargu:

let str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';

Shkruani një regex që do të gjejë vargjet '*q+', '*qq+', '*qqq+', pa kapur pjesën tjetër.

Është dhënë vargu:

let str = '[abc] {abc} abc (abc) [abc]';

Shkruani një regex që do të gjejë vargjet në kllapa katrore dhe do t'i zëvendësojë ato me '!'.

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