Vijëza brenda grupeve në shprehjet e rregullta JavaScript
Vijëza - është gjithashtu një karakter special brenda [ ]
(por jashtë - jo). Nëse keni nevojë për vijëzën vetë
si karakter - atëherë vendoseni aty,
ku ajo nuk do të perceptohet si ndarës
i grupit.
Pse është kjo e rëndësishme: ju mund të bëni një grup
karakteresh, pa e vënë re vetë. Për shembull,
kështu - '[:-@]' - ju mendoni, se
po zgjidhni dy pika, vijëz dhe simbolin @, por në
të vërtetë rezulton një grup karakteresh midis
: dhe @. Në këtë grup përfshihen
karakteret e mëposhtme: ? < = > : ;
Nga erdhën ata? Nga tabela ASCII - dy pikat kanë numër më të vogël, se simboli @ - dhe rezulton grupi. Domethënë të gjitha grupet formohen sipas tabelës ASCII (nëse dëshironi kësaj mund t'i përdorni).
Si të luftohet kjo: vendosni karakterin e vijëzës
aty, ku me siguri nuk do të perceptohet si
karakter grupi, për shembull, në fillim ose në fund
(dmth pas [ ose para ]).
Mund gjithashtu të ekranizoni vijëzën - atëherë
ajo do të shënojë vetveten pavarësisht nga
pozita. Për shembull, në vend të [:-@] shkruani
[:\-@] - dhe grupi tashmë nuk do të jetë, por
do të jenë tre karaktere - dy pika, vijëz dhe simboli
@.
Shembull
Në shembullin vijues modeli i kërkimit është:
shifra 1, pastaj shkronja nga 'a'
deri në 'z', pastaj shifra 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! 1-2 ! !'
Shembull
Tani le ta ekranizojmë vijëzën. Si rezultat
modeli i kërkimit është: shifra 1, pastaj
shkronja 'a', ose vijëz, ose shkronja 'z',
pastaj shifra 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! 1c2 !'
Shembull
Mund thjesht ta ndërroni vendin e vijëzës, pa e ekranizuar atë:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! 1c2 !'
Shembull
Në shembullin vijues modeli i kërkimit është:
karakteri i parë - është shkronja të vogla ose
vijëz '-', pastaj dy shkronja 'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! Axx ! @xx'
Shembull
Në shembullin vijues modeli i kërkimit është:
karakteri i parë - është shkronja të vogla, të mëdha
ose vijëz '-', pastaj dy shkronja
'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! @xx'
Shembull
Mund të vendosni vijëzën midis dy grupeve - aty ajo me siguri nuk do të krijojë një grup tjetër:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
Si rezultat në variabël do të shkruhet si më poshtë:
'! ! ! @xx'
Detyra praktike
Është dhënë vargu:
let str = 'xaz xBz xcz x-z x@z';
Gjeni të gjitha vargjet sipas modelit vijues:
shkronja 'x', shkronjë e madhe ose e vogël
ose vijëz, shkronja 'z'.
Është dhënë vargu:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
Gjeni të gjitha vargjet sipas modelit vijues:
shkronja 'x', pastaj ose dollar, ose
vijëz ose plus, pastaj shkronja 'z'.