Sto cercando il regex per convalidare i nomi host. Deve essere completamente conforme allo standard. In questo momento, hoNome host Regex
^[0-9a-z]([0-9a-z\-]{0,61}[0-9a-z])?(\.[0-9a-z](0-9a-z\-]{0,61}[0-9a-z])?)*$
ma permette hypens successivi e nomi host più lunghi di 255 caratteri. Se la regex perfetta è impossibile, dillo.
Modifica/Chiarimento: una ricerca su Google non ha rivelato che si tratta di un problema risolto (o dimostrato irrisolvibile). Voglio creare la regex definitiva in modo che nessuno debba scrivere il proprio mai. Se i dialetti sono importanti, voglio una versione per ognuno in cui ciò può essere fatto.
Non accetta domini con "." Finale. ma in caso contrario, funziona. – nicerobot
corretto. Mi chiedo se l'asserzione della lunghezza debba controllare se è 254 o meno escludendo il punto finale invece di verificare se è 255 o meno. Altrimenti qualcuno lungo la linea potrebbe aggiungere il punto finale a un nome host di lunghezza massima e romperlo. – CannibalSmith
Il \ b prima del trattino impedisce che questo corrisponda ai nomi di dominio internazionalizzati validi, ad es. xn--bcher-kva.ch. –