Avatar billede webweaver Praktikant
26. september 2007 - 18:15 Der er 6 kommentarer og
1 løsning

Regex driller med validering af URL.

Hej prof's :)

Jeg kan desværre ikke gå mit regex til at gøre som jeg vil.
Den skal bare validere en ganske normal URL, fx www.minsite.dk

Det vil den dog midlertidigt ikke.

Mit regex ser således ud;

define("WEB-URL", "/^http://www\.{1,1}+[a-zA-Z0-9æøåÆØÅ\-]+\.[a-zA-Z0-9\-\.]+$/");

Nogle der kan fortælle mig hvad problemet kunne være?

På forhånd tak :)

Mvh. Lasse Jensen
Avatar billede nielle Nybegynder
26. september 2007 - 18:53 #1
I dit eksempel har du ikke http:// foran og så valideres den selvfølgelig ikke med det viste pattern. Men du har vel bare glemt den her i farten?

Ellers en sjov en - {1,1}+ - jeg er ikke helt sikker på hvad den egentlig gør, men den gør i hvert fald ikke det du forventer. Den skal bare slettes.

Alt andet lige, så tror jeg a denne her er noget tættere å det du søger:

define("WEB-URL", "/^http://www\.[a-z0-9æøå\-]+\.[a-z0-9\-]{2,}$/i");
Avatar billede a1a1 Novice
26. september 2007 - 20:13 #2
ved ikke om du har taget højde for f.eks. (er ikke super til regex)
domænenavne som:
www.eksperten.co.uk
eksperten.co.uk
info.eksperten.dk
eksperten.dk
osv...

og man kan jo også have en https:// adresse

ved ikke hvad du programmere i men i f.eks. .net kan du "pinge" den indtastede adresse og se om du får svar ;o)

;o)
Avatar billede webweaver Praktikant
26. september 2007 - 21:08 #3
Jeg ved godt at http:// naturligvis skal med før den vil gå igennem valideringen, jeg glemte bare at skrive det herinde :)

Det jeg forsøger på at få den til at sige, når jeg skriver {1,1} er bare, at den skal udføre det som står lige før, minumum 1 gang og max 1 gang. Det er måske ikke den korrekte måde at gøre dette på?

Der er selvfølgelig taget højde for domæner som .co.uk for eksempel. Det er også derfor det er tilladt at lave punktum i sidste del af regex'et.

Men nielle jeg prøver lige dit regex en gang, og ser om det går bedre :)
Btw, hvad gør i'et til sidst?
Avatar billede nielle Nybegynder
26. september 2007 - 21:16 #4
> Det jeg forsøger på at få den til at sige, når jeg skriver {1,1} er bare, at den skal udføre det som står lige før, minumum 1 gang og max 1 gang. Det er måske ikke den korrekte måde at gøre dette på?

Det sker nu ganske af sig selv - den matcher kun noget en enkelt gang.

> Btw, hvad gør i'et til sidst?

i'et står for "ignore case" og betyder at der ikke skal skelnes mellem store og små bogstaver. Derfor kan man nåjes med at skrive a-Z og man kan undlade at supplere denne med A-Z.
Avatar billede webweaver Praktikant
26. september 2007 - 21:21 #5
Ahh det er jo meget smart :) Så vil jeg da huske på den ;)

Desværre virker det stadig ikke. Det er den samme fejl, valideringen går ikke igennem, selvom man taster en url korrekt. Hmm ...

Noget kunne måske tyde på at fejlen ligger et andet sted end i regex'et?
Jeg synes nu bare ikke lige jeg kan se hvorhenne i såfald.
Avatar billede webweaver Praktikant
26. september 2007 - 23:58 #6
nielle løste problemet, så smid bare et svar du .. :)

Mvh. Lasse Jensen
Avatar billede nielle Nybegynder
27. september 2007 - 06:47 #7
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester