Flerradighet i JavaScript reguljära uttryck
Reguljära uttryck har sina särdrag när de arbetar med flerradiga strängar. Låt oss undersöka dessa med hjälp av följande sträng, som innehåller vanliga tecken, radbrytningstecken och tabbsteg:
let str = `111
222
333
444`;
Radbrytning
Radbrytningstecken kan
fångas med kommandot '\n':
let res = str.replace(/\n/g, '!');
Resultatet som skrivs till variabeln blir följande (mellanrummen mellan raderna är tabbsteg):
`111! 222! 333! 444`;
Tabb
Tabbtecken kan
fångas med kommandot '\t':
let res = str.replace(/\t/g, '!');
Resultatet som skrivs till variabeln blir följande:
`
111
!222
!333
!444
`;
Punkten fungerar
Kommandot '.' för en flerradig
sträng fångar inte radbrytningstecken:
let res = str.replace(/./g, '!');
Resultatet som skrivs till variabeln blir följande:
`
!!!
!!!!
!!!!
!!!!
`;
Vilket tecken som helst
För att fånga alla tecken i en flerradig
sträng används ett knepigt trick i form av
kombinationen [\s\S]. Denna konstruktion hittar
alla vanliga tecken och alla radbrytningar:
let res = str.replace(/[\s\S]/g, '!');
Resultatet som skrivs till variabeln blir följande:
`!!!!!!!!!!!!!!!!!!`;
Cirkumflex
Med modifieraren 'm'
kan man aktivera flerradsläge.
I detta fall kommer cirkumflex att fånga
början av varje rad:
let res = str.replace(/^/gm, '!');
Resultatet som skrivs till variabeln blir följande:
`
!111
!222
!333
!444
`;
Dollar
Kommandot '
i flerradsläge
kommer att fånga slutet av varje rad:
let res = str.replace(/$/gm, '!');
Resultatet som skrivs till variabeln blir följande:
`
111!
222!
333!
444!
`;
Praktiska uppgifter
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`
abc!
def!
ghi!
jkl!
`;
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`
! abc
! def
! ghi
! jkl
`;
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`!
abc
def
ghi
jkl
!`;
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`!
! abc
! def
! ghi
! jkl
!`;
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`!
abc!
def!
ghi!
jkl!
!`;
Given en sträng:
`
abc
def
ghi
jkl
`;
Skriv ett reguljärt uttryck som gör följande av denna sträng:
`
!abc
!def
!ghi
!jkl
`;