Veelvuldigheid in JavaScript Regex
Reëlmatige uitdrukkings het hul eienaardighede wanneer hulle met veellyn snare werk. Laat ons dit ontleed aan die hand van die volgende string, wat gewone karakters bevat, reëlskuiwing karakters en inspringings:
let str = `111
222
333
444`;
Reëlskuiwing
Reëlskuiwing karakter kan
gevang word met die opdrag '\n':
let res = str.replace(/\n/g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word (die spasies tussen die lyne is inspringing):
`111! 222! 333! 444`;
Inspringing
Inspringing karakters kan
gevang word met die opdrag '\t':
let res = str.replace(/\t/g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
`
111
!222
!333
!444
`;
Werk van die punt
Die opdrag '.' vir 'n veelvuldige
string vang nie reëlskuiwing karakters nie:
let res = str.replace(/./g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
`
!!!
!!!!
!!!!
!!!!
`;
Enige karakter
Om alle karakters in 'n veelvuldige string te vang,
word 'n slim truuk gebruik in die vorm van
die kombinasie [\s\S]. So 'n konstruksie sal vind
alle gewone karakters en alle reëlafloop:
let res = str.replace(/[\s\S]/g, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
`!!!!!!!!!!!!!!!!!!`;
Hoedjie
Met die modifiseerder 'm'
kan die veelvuldige modus aangeskakel word.
In hierdie geval sal die hoedjie die
begin van elke lyn vang:
let res = str.replace(/^/gm, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
`
!111
!222
!333
!444
`;
Dollar
Die opdrag '$' in die veelvuldige modus
sal die einde van elke lyn vang:
let res = str.replace(/$/gm, '!');
As gevolg sal die volgende in die veranderlike weggeskryf word:
`
111!
222!
333!
444!
`;
Praktiese take
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`
abc!
def!
ghi!
jkl!
`;
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`
! abc
! def
! ghi
! jkl
`;
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`!
abc
def
ghi
jkl
!`;
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`!
! abc
! def
! ghi
! jkl
!`;
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`!
abc!
def!
ghi!
jkl!
!`;
Gegee 'n string:
`
abc
def
ghi
jkl
`;
Skryf 'n reëlmatige uitdrukking wat van hierdie string die volgende sal maak:
`
!abc
!def
!ghi
!jkl
`;