views:

119

answers:

2

Hi,

I need to come up with a regular expression to validate hostname against RFC-1123 and RFC-952.

Right now I'm using this:

^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|\b-){0,61}[0-9A-Za-z])?)*\.?$/

but this does not do the trick since it does not catch a. as invalid hostname.

How do I enhance the reg expression to comply with those RFCs?

Thanks

+5  A: 

I found Data::Validate::Domain on CPAN.

I have not tried this, but it looks promising (has positive reviews etc.).

Snake Plissken
+7  A: 

Regexp::Common contains a regex that matches against RFC-1035, is this good enough?

Chas. Owens