Introduksjon til regulære uttrykk i JavaScript
Regulære uttrykk er slags kommandoer for kompleks søk og erstatning (eller bare søk). De tillater å gjøre veldig interessante ting, men dessverre er de ganske vanskelige å mestre.
Det finnes flere JavaScript-metoder for
arbeid med regulære uttrykk. Vi vil begynne
å bli kjent med dem ved å bruke eksempelet replace
- du er allerede kjent med denne metoden: den tar
det første parameteret for hva som skal erstattes, og det andre
- med hva den skal erstattes med. Og selve metoden brukes
på strengen der erstatningen gjøres:
'bab'.replace('a', '!'); // returnerer 'b!b'
Som første parameter til denne metoden kan man sende
ikke bare en streng, men et regulært uttrykk.
Et regulært uttrykk representerer et sett
kommandoer plassert inni skråstreker /. Disse
skråstrekene kalles begrensere for regulære
uttrykk.
De regulære uttrykkene selv består av to typer tegn: av de som representerer seg selv og av tegn-kommandoer, som kalles spesialtegn.
Bokstaver og tall representerer seg selv. I det følgende
eksempelet vil vi ved hjelp av et regulært uttrykk
erstatte bokstaven 'a' med !:
'bab'.replace(/a/, '!'); // returnerer 'b!b'
Men et punktum er et spesialtegn
og representerer hvilket som helst tegn. I det følgende
eksempelet vil vi finne en streng etter denne mønsteret:
bokstaven 'x', deretter hvilket som helst tegn, deretter
igjen bokstaven 'x':
'xax eee'.replace(/x.x/, '!'); // returnerer '! eee'
Etter begrenserne kan man skrive modifikatorer
- kommandoer som endrer de generelle egenskapene
til det regulære uttrykket. For eksempel, modifikatoren
g slår på modus for globalt søk
og erstatning - uten den vil det regulære uttrykket bare søke etter
den første treffen, men med den - alle treffene.
I det følgende eksempelet er ikke modifikatoren
g spesifisert, og det regulære uttrykket vil bare finne den første
treffen:
'aab'.replace(/a/, '!'); // returnerer '!ab'
Og nå vil det regulære uttrykket finne alle treffene:
'aab'.replace(/a/g, '!'); // returnerer '!!b'
Gitt en streng:
let str = 'ahb acb aeb aeeb adcb axeb';
Skriv et regulært uttrykk som vil finne strengene
'ahb', 'acb', 'aeb'
etter mønsteret: bokstaven 'a', hvilket som helst tegn,
bokstaven 'b'.
Gitt en streng:
let str = 'aba aca aea abba adca abea';
Skriv et regulært uttrykk som vil finne strengene
'abba', 'adca', 'abea'
etter mønsteret: bokstaven 'a', 2
hvilke som helst tegn, bokstaven 'a'.
Gitt en streng:
let str = 'aba aca aea abba adca abea';
Skriv et regulært uttrykk som vil finne strengene
'abba' og 'abea', uten å fange
'adca'.