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