Question

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

Was it helpful?

Solution

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

OTHER TIPS

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

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top