Hyrje në shprehjet e rregullta në JavaScript
Shprehjet e rregullta janë komanda të tilla për kërkim dhe zëvendësim kompleks (ose thjesht kërkim). Ato lejojnë të bëhen gjëra shumë interesante, por, për fat të keq, janë mjaft të vështira për t'u zotëruar.
Ekzistojnë disa metoda JavaScript për
të punuar me shprehjet e rregullta. Do të fillojmë
të njihemi me to duke përdorur shembullin e replace
- ju jeni njohur tashmë me këtë metodë: ajo merr si parametër të parë
çfarë të ndryshohet, dhe si të dytin
- me çfarë të zëvendësohet. Dhe vetë metoda zbatohet
në vargun në të cilin kryhet zëvendësimi:
'bab'.replace('a', '!'); // kthen 'b!b'
Si parametër i parë i kësaj metode mund të kaloni
jo vetëm një varg, por një shprehje të rregullt.
Një shprehje e rregullt përfaqëson një grup
komandash, të vendosura brenda çajave /. Këta
çaja quhen kufizues të shprehjeve
të rregullta.
Vetë shprehjet e rregullta përbëhen nga dy lloje karakteresh: nga ata që shënojnë veten dhe nga karakteret-komanda, të cilat quhen karaktere speciale.
Shkronjat dhe numrat shënojnë veten e tyre. Në shembullin vijues
ne me ndihmën e shprehjes së rregullt
do të zëvendësojmë shkronjën 'a' me !:
'bab'.replace(/a/, '!'); // kthen 'b!b'
Por pika është një karakter special
dhe shënon çdo karakter. Në shembullin
vijues ne do të gjejmë një varg sipas këtij modeli:
shkronja 'x', pastaj çdo karakter, pastaj
përsëri shkronja 'x':
'xax eee'.replace(/x.x/, '!'); // kthen '! eee'
Pas kufizuesve mund të shkruhen modifikues
- komanda që ndryshojnë vetitë e përgjithshme
të shprehjes së rregullt. Për shembull, modifikuesi
g aktivizon mënyrën e kërkimit global
dhe zëvendësimit - pa të, shprehja e rregullt kërkon vetëm
përputhjen e parë, dhe me të - të gjitha përputhjet.
Në shembullin vijues nuk është specifikuar modifikuesi
g dhe shprehja e rregullt do të gjejë vetëm përputhjen
e parë:
'aab'.replace(/a/, '!'); // kthen '!ab'
Dhe tani shprehja e rregullt do të gjejë të gjitha përputhjet:
'aab'.replace(/a/g, '!'); // kthen '!!b'
Është dhënë vargu:
let str = 'ahb acb aeb aeeb adcb axeb';
Shkruani një shprehje të rregullt që do të gjejë vargjet
'ahb', 'acb', 'aeb'
sipas modelit: shkronja 'a', çdo karakter,
shkronja 'b'.
Është dhënë vargu:
let str = 'aba aca aea abba adca abea';
Shkruani një shprehje të rregullt që do të gjejë vargjet
'abba', 'adca', 'abea'
sipas modelit: shkronja 'a', 2
çdo karakteri, shkronja 'a'.
Është dhënë vargu:
let str = 'aba aca aea abba adca abea';
Shkruani një shprehje të rregullt që do të gjejë vargjet
'abba' dhe 'abea', pa kapur
'adca'.