Rexact
Cheatsheet

Regex IPv4 address

Many IPv4 regexes found online just count digits (1 to 3 per octet) without ever checking that an octet stays under 256. Here's a pattern that actually checks each octet, compared against the most copied versions.

/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/
passes 22/22 cases

Comparison of existing patterns

Implementation

const re = new RegExp("^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$", "");
re.test(input);

Limits

  • Valide seulement la forme : n'indique pas si l'adresse est routable, privée (RFC 1918) ou réellement attribuée.
  • N'accepte pas la notation CIDR (ex. « 192.168.1.0/24 ») : un motif séparé est nécessaire pour valider un préfixe réseau.
  • N'accepte pas les formes historiques abrégées (« 127.1 » pour 127.0.0.1, ou un entier décimal unique comme « 2130706433 ») que certains outils systèmes tolèrent encore par héritage.
  • Ne couvre pas IPv6 ni les adresses IPv4-mapped IPv6 (ex. « ::ffff:192.168.1.1 »).

Related pages