4.2 Reguljära uttryck
Ett reguljärt uttryck används för att definiera ett mönster för en textsträng. T.ex. är mönstret för ett svenskt bilnummer tre bokstäver, två siffror och en bokstav eller siffra. Med ett reguljärt uttryck i JavaScript har man ett formellt sätt att beskriva mönstret. Detta kan sedan jämföras mot en text, för att se om den stämmer med mönstret. I formulär använder man det för en del textfält, för att kontrollera om användaren skrivit in data på rätt form. Exemplet är uppdelat i två delar:
- Exempel på hur reguljära uttryck skrivs samt hur funktionerna test och match används.
- Exempel på hur reguljära uttryck används i validering av ett par textfält i ett formulär.
44 min.
Sammanfattning
- Ett reguljärt uttryck omges av snedstreck —
/reguljärt uttryck/
- Jämför med att en textsträng omges av citattecken, för att ange början och slut.
- För att skriva uttrycken finns ett antal symboler och tecken för sammansättning (se referenslista). Om något av dessa tecken ingår i mönstret, kan man i uttrycket skriva ett "backslash" före tecknet. T.ex
\(
betyder att en parentes ingår i mönstret. - Ska en text börja med mönstret, inleder man det reguljära uttrycket med
^
och ska texten sluta med mönstret avslutar man uttrycket med$
. Har man både^
och$
får texten endast innehålla mönstret. Har man inte med dessa tecken, kan mönstret förekomma varsom helst i texten. - Med
re.test(str)
kontrollerar man om strängen str stämmer med mönstret i det reguljära uttrycket re. Resultatet ärtrue
ellerfalse
. - Med
str.match(re)
genomsöks str för att leta efter mönstret i re. Resultatet blir en array med de delsträngar som stämmer med re. Finns inte mönstret i strängen, blir resultatetnull
.
Egna övningar
Här följer ett förslag på några egna övningar. Öppna filen test.html och test.js och utför följande:
- Programmet är detsamma som i script-a.js. Längst ner i
init
-funktionen ska du lägga till ett reguljärt uttryck för en HTML-tagg utan attribut, dvs mönstret för en sträng som t.ex. <p> eller <body>. Testa genom att trycka på knapparna och se om du får förväntat resultat. - Utöka ditt reguljära uttryck, så att det även inkluderar mösntret för en HTML-tagg med attribut, dvs formen <tagg attribut="vadsomhelst">. Det kan vara noll eller flera attribut. Attributets namn består endast av bokstäverna a till z. Attributets värde ska stå inom citattecknen, men där emellan kan det vara vilka tecken som helst (utom newline eller line terminator).