/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
RegExp: 9 cifre og ét bogstav
Fra : Jesper Stocholm


Dato : 25-09-03 20:19

Jeg skal have lavet et regular expression der skal matche følgende:

10 cifre
9 cifre og ét bogstav
13 cifre
12 cifre og ét bogstav

De rene ciffer-strenge har jeg klaret med /\d{10}/ hhv /\d{13}/ men jeg
har lidt problemer med de to andre.

Jeg sidder med min (nye) Perl-manual foran mig, men jeg kan ikke helt se,
hvordan jeg skal greje den.

Jeg har forsøgt med

/\d{9}[a-zA-z]/
/\d{9}\D{1}/

Men begge matcher godt nok fx 123456789X, men de matcher også 123456789XX
- hvilket den ikke skal.

Hvordan får jeg den til at tillade netop ét bogstaver efter mine fx 9
cifre?



--
Jesper Stocholm - www.stocholm.dk

.... der gerne vil gøre usenet til et trygt sted at være.

 
 
Lasse Reichstein Nie~ (25-09-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 25-09-03 20:35

Jesper Stocholm <jespers@stocholm.invalid> writes:

> Jeg skal have lavet et regular expression der skal matche følgende:
>
> 10 cifre
> 9 cifre og ét bogstav
> 13 cifre
> 12 cifre og ét bogstav
>
> De rene ciffer-strenge har jeg klaret med /\d{10}/ hhv /\d{13}/ men jeg
> har lidt problemer med de to andre.

Dem her har du også problemer med.

> Jeg sidder med min (nye) Perl-manual foran mig, men jeg kan ikke helt se,
> hvordan jeg skal greje den.

Jeg *tror* der er forskelle mellem Javascripts og Perls regulare
udtryk, men man skal vist ud i det mere eksotiske for at ramme dem (og
jeg tror at det er Perl der har flere features, hvis der er noget).

> Jeg har forsøgt med
>
> /\d{9}[a-zA-z]/
> /\d{9}\D{1}/
>
> Men begge matcher godt nok fx 123456789X, men de matcher også 123456789XX
> - hvilket den ikke skal.

/\d{10}/ matcher også 123456789012. Et regulært udtryk behøver ikke at
matche hele strengen, men kan nøjes med en del af den. For at undgå
det skal man sige at den skal matche fra start til slut, med ^ (start
på streng) og $ (slut på streng) matches:

/^\d{10}$/ og /^\d{9}[a-z]$/i

Hvis du vil have det hele ned i et regulært udtryk:

/^\d{9}(\d{3})?[\da-z]$/i

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'

Jesper Stocholm (25-09-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 25-09-03 20:49

Lasse Reichstein Nielsen wrote :

> /\d{10}/ matcher også 123456789012. Et regulært udtryk behøver ikke at
> matche hele strengen, men kan nøjes med en del af den. For at undgå
> det skal man sige at den skal matche fra start til slut, med ^ (start
> på streng) og $ (slut på streng) matches:
>
> /^\d{10}$/ og /^\d{9}[a-z]$/i
>
> Hvis du vil have det hele ned i et regulært udtryk:
>
> /^\d{9}(\d{3})?[\da-z]$/i

Tak fordi du lige fik sat det på plads for mig.



--
Jesper Stocholm - http://stocholm.dk

Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste