21. juni 2005 - 22:09Der er
3 kommentarer og 1 løsning
match enten gyldigt indhold, eller intet indhold
Hej.
Jeg skal lave en validering på et tekstfelt. Det er valgfrit om feltet skal udfyldes, men hvis det udfyldes skal indholdet være gyldigt.
F.eks. ved et CPR felt har jeg denne simple validering \d{6}\-\d{4}
Den tjekker fint om der er 6 tal, efterfulgt af en streg, og derefter 4 tal. Men jeg vil også gerne have muligheden for at den matcher hvis feltet er tomt, dvs noget i stil med (<et udtryk for tomt her>|\d{6}\-\d{4})
Synes snart at jeg har prøvet hvad som helst, men kan ikke få noget som helst til at virke på en tom streng.
Her netop siddet og læst lidt mere på det, og har fundet frem til at jeg ledte efter "$^" - da det vel må være det samme som ingenting (start på linie, efterfulgt af slut på linie)
Men hvad er så forskellen i at bruge (^$|\d{6}\-\d{4}) og i at bruge ^(\d{6}\-\d{4})?$ Foruden at jeg kan se at min mangler en ^ og $ ved cpr tjek
Hvis du ikke har et anchor i begge ender, vil din RegExp også matche sådan noget som:
sgdgds123456-6347jhdhhc
Det lille spørgsmålstegn i slutningen af parentesen betyder "optional". Enten kan det inde i parentesen undlades (svarende til at matche på ^$), eller også skal der matches på det (svarende til at matche på ^\d{6}\-\d{4}$).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.