REGEXVAULT
Web & Network/IPv6
ReDoS Checked

IPv6 Full Expanded Form Regex for JavaScript

/^[0-9a-fA-F]{1,4}(?::[0-9a-fA-F]{1,4}){7}$/

All five implementations are free. Switch engines without signing in.

What this pattern does

This page provides a well-structured, multi-part regular expression for matching ipv6 full expanded form, ported and verified for JavaScript. A rigorously tested regex reduces debugging time and protects your application from edge-case failures. The snippet below is ready to drop into your JavaScript project — whether you're validating in an Express middleware, a Next.js API route, or a client-side form.

Javascript Implementation

Javascript
// IPv6 Full Expanded Form
// ReDoS-checked | RegexVault — Web & Network > IPv6

const ipv6FullExpandedFormRegex = /^[0-9a-fA-F]{1,4}(?::[0-9a-fA-F]{1,4}){7}$/;

function validateIpv6FullExpandedForm(input: string): boolean {
  return ipv6FullExpandedFormRegex.test(input);
}

// Example
console.log(validateIpv6FullExpandedForm("2001:0db8:85a3:0000:0000:8a2e:0370:7334")); // true

Test Cases

Matches (Valid)
Rejects (Invalid)
2001:0db8:85a3:0000:0000:8a2e:0370:73342001:db8::1
0000:0000:0000:0000:0000:0000:0000:0001::1
fe80:0000:0000:0000:0202:b3ff:fe1e:83292001:0db8:85a3:0000:0000:8a2e:0370
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff2001:0db8:85a3:0000:0000:8a2e:0370:7334:extra
1:2:3:4:5:6:7:8192.168.1.1

When to use this pattern

This pattern is drawn from the Web & Network > IPv6 category and has been checked for ReDoS risk. That matters for JavaScript developers because especially critical in long-running Node.js event loops where a ReDoS vulnerability can block the entire process. RegexVault audits patterns against known backtracking attack vectors, ensuring you have the necessary context before using this regex in a high-stakes production environment.

Common Pitfalls

IPv6 addresses are case-insensitive — always apply case-insensitive matching or normalize to lowercase before comparing.

Technical Notes

This matches only the fully expanded form. Does not accept :: compression. Each group can be 1–4 hex digits (leading zeros optional within group).

Have a pattern that belongs in the vault?

Submit it for review — community-verified patterns get credited to your GitHub handle. Submissions join the review queue after automated validation.

Submit a Pattern