Regex Pal

Dan's Tools

Hostname FQDN validation

This is a version that works in javascript (without regex look behind). Hostnames are composed of a series of labels concatenated with dots. Each label is 1 to 63 characters long, and may contain: the ASCII letters a-z and A-Z, the digits 0-9, and the hyphen ('-'). Additionally: labels cannot start or end with hyphens (RFC 952) labels can start with numbers (RFC 1123) trailing dot is not allowed max length of ascii hostname including dots is 253 characters TLD (last label) is at least 2 characters and only ASCII letters we want at least 1 level above TLD Source:, answer from JdeBP


Top Regular Expressions

Cheat Sheet

Character classes
. any character except newline
\w \d \s word, digit, whitespace
\W \D \S not word, digit, whitespace
[abc] any of a, b, or c
[^abc] not a, b, or c
[a-g] character between a & g
^abc$ start / end of the string
\b word boundary
Escaped characters
\. \* \\ escaped special characters
\t \n \r tab, linefeed, carriage return
\u00A9 unicode escaped ©
Groups & Lookaround
(abc) capture group
\1 backreference to group #1
(?:abc) non-capturing group
(?=abc) positive lookahead
(?!abc) negative lookahead
Quantifiers & Alternation
a* a+ a? 0 or more, 1 or more, 0 or 1
a{5} a{2,} exactly five, two or more
a{1,3} between one & three
a+? a{2,}? match as few as possible
ab|cd match ab or cd