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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Reg.expression for domænenavn
Fra : JD


Dato : 13-07-06 13:26

Jeg vil gerne validere et domænenavn (inkl. subdomæner) men har lidt
problemer med reg.expression.
Jeg har denne sætning:

ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
"w.dk");
ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
"w.w.w.w.dk");
ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
"-w-.dk");

1. og 2. skal være OK mens nummer 3 skal fejle. Jeg kan ikke helt få det til
at fungere men jeg kan ikke gennemskue hvorfor, da jeg jo selv synes
strengen ser korrekt ud?



 
 
JD (13-07-2006)
Kommentar
Fra : JD


Dato : 13-07-06 15:16

> Jeg vil gerne validere et domænenavn (inkl. subdomæner) men har lidt
> problemer med reg.expression.
> Jeg har denne sætning:
>
> ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
> "w.dk");
> ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
> "w.w.w.w.dk");
> ereg("^(([0-9a-zA-Z][-.0-9a-zA-Z][0-9a-zA-Z]){1,250})\.[a-zA-Z]{2,4}$",
> "-w-.dk");
>
> 1. og 2. skal være OK mens nummer 3 skal fejle. Jeg kan ikke helt få det
> til at fungere men jeg kan ikke gennemskue hvorfor, da jeg jo selv synes
> strengen ser korrekt ud?

Jeg skulle nok have prøvet lidt googeling først, da jeg fandt frem til
denne:
http://www.shauninman.com/plete/2006/05/validating-domain-names

Det fik jeg denne streng ud af:
"^([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.[a-zA-Z]{2,4}$)"

Den er ikke perfekt, da den tillader -- hvilket er tilladt i IDN domæner,
men det er ligemeget i dette tilfælde samt validere den kun hoved domænet.
Hvis jeg sætter punktum i denne sætning [-.a-zA-Z0-9] giver det en masse
andre problemer.

Nogle gode bud på hvordan man validere BÅDE hoved domænet OG subdomænet?



Peter Brodersen (13-07-2006)
Kommentar
Fra : Peter Brodersen


Dato : 13-07-06 15:34

On Thu, 13 Jul 2006 16:15:36 +0200, "JD" <jonh@doe.xyz> wrote:

>Det fik jeg denne streng ud af:
>"^([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.[a-zA-Z]{2,4}$)"
>
>Den er ikke perfekt, da den tillader -- hvilket er tilladt i IDN domæner,
>men det er ligemeget i dette tilfælde samt validere den kun hoved domænet.
>Hvis jeg sætter punktum i denne sætning [-.a-zA-Z0-9] giver det en masse
>andre problemer.
>
>Nogle gode bud på hvordan man validere BÅDE hoved domænet OG subdomænet?

Du kan repetere første del et vilkårligt antal gange, fx:

^([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,4}$

Bemærk, at den fx ikke fanger annebjerggaard.museum som er et gyldigt
og fungerende domænenavn. Det er dog let at justere {2,4} til {2,6}

Der er i øvrigt ingen problemer med -- . Der er allerede en del
domæner, der indeholder dette, ud over IDN-domæner. Et par eksempler:

www.bmw--power.dk
www.peter--jensen.dk
www.briller-0--0-med------stang.dk
www.0-------------------------------------------------------------0.dk

--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med link direkte til en adresse, fx: www.findvej.dk/Nybrogade2,1203

JD (13-07-2006)
Kommentar
Fra : JD


Dato : 13-07-06 15:44

>>Det fik jeg denne streng ud af:
>>"^([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.[a-zA-Z]{2,4}$)"
>>Nogle gode bud på hvordan man validere BÅDE hoved domænet OG subdomænet?
>
> Du kan repetere første del et vilkårligt antal gange, fx:
> ^([a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,4}$

Whau, det var ikke nogen stor ændring, men det virker glimrende. Mange tak.

> Der er i øvrigt ingen problemer med -- . Der er allerede en del
> domæner, der indeholder dette, ud over IDN-domæner. Et par eksempler:

Okay, jeg kunne godt nok ikke se noget om det på DK-Hostmasters side, men
jeg troede kun, at det var IDN domæner der havde dobbelt --.



Bo Meyer (17-07-2006)
Kommentar
Fra : Bo Meyer


Dato : 17-07-06 19:44

JD skrev:

> Okay, jeg kunne godt nok ikke se noget om det på DK-Hostmasters side, men
> jeg troede kun, at det var IDN domæner der havde dobbelt --.

Det er samme sag, men en lidt anden anden validering. Denne kode er jeg endt med at være glad for
ved validering af email adresser:

function emailok($str) {
return eregi( "^"
."^[a-z]+([_\\.a-z0-9-]+)*" //user
."@"
."([a-z0-9]+([\.-][a-z0-9]+)*)+" //domain
."(\\.[a-z]{2,})" //sld, tld
."$", $str, $regs) ? true : false;
}

Der skal ikke meget ændring til for at validere et domænenavn.

Mvh./Bo

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste