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.'