What Makes a UUID Structurally Valid?
A UUID is a 128-bit label encoded as 32 hex digits in five hyphen-separated groups — the canonical 8-4-4-4-12 layout, 36 characters total including dashes: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. M is the version character, N encodes the variant. Some systems wrap the text in curly braces, but braces aren't part of the canonical structure. To generate uuid v4 without code, press the button on the UUID v4 Generator page — ready in milliseconds.
A special case worth knowing: the Nil UUID — all 128 bits set to zero, 00000000-0000-0000-0000-000000000000 — is explicitly defined as valid in RFC 4122 Section 4.1.7. This tool recognizes it as a distinct case rather than flagging it as invalid.
What This Validator Checks
Submitting a UUID runs it through several structural checks:
- Overall length — exactly 36 characters (32 hex digits plus four dashes)
- Hyphen placement — dashes must appear at positions 9, 14, 19, and 24
- Character set — every non-dash character must be a valid hex digit (0–9, a–f, case-insensitive)
- Version digit — the first character of the middle segment must fall in the recognized range for standard and newer UUID types
- Variant bits — the first character of the fourth block must match a known variant pattern
The strict check this tool applies:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
A looser pattern additionally accepts optional hyphens and surrounding braces before falling back to the strict check — so {550E8400E29B41D4A716446655440000} and the canonical hyphenated form both validate correctly.
Bulk Validation
Paste multiple UUIDs, one per line, into the Bulk UUID Validation section below and every entry is checked independently — useful for auditing exports, test fixtures, or database migrations containing many labels at once. The summary shows running Valid and Invalid counts alongside per-line results. The uuid v1 generator is useful for event logging and audit trails where chronological ordering matters.
Worked Examples
Valid — a UUID v4: 550e8400-e29b-41d4-a716-446655440000. Version character "4" matches the recognized range; variant character "a" falls within [89ab], confirming the RFC 4122 variant. Result: valid.
Invalid — a truncated string: 550e8400-e29b-41d4-a716. Only four groups instead of five, 24 characters instead of 36 — the check fails immediately. Common causes of malformed entries include extra characters, non-hex characters, missing hyphens, or a version digit outside the valid range.
Special case — the Nil UUID: 00000000-0000-0000-0000-000000000000 carries no version or variant information at all. It's intentionally excluded from the strict version check but explicitly accepted as a reserved value — this tool reports it as "Valid (Nil)" rather than rejecting it.
Validating UUIDs Programmatically
To replicate this check in your own code rather than pasting values into a browser tool, most ecosystems have a well-maintained library rather than a hand-rolled regex:
- JavaScript / Node.js — the
uuidnpm package exports a booleanvalidate()function - TypeScript / NestJS —
class-validator's@IsUUID()decorator validates DTO properties directly - JSON Schema —
ajvsupports theformat: 'uuid'keyword natively - General-purpose validation — the
validatorlibrary'sisUUID(str, version)covers v3 through v5 alongside other input types
Frequently Asked Questions
How does this UUID validator work?
It checks each entry against the RFC 4122 structural rules: exactly 36 characters, hyphens at positions 9, 14, 19, and 24, every other character a valid hex digit, a version digit in the recognized range, and variant bits matching a known pattern. It then reports the detected version alongside a valid or invalid result.
Can I validate multiple UUIDs at once?
Yes — use the Bulk UUID Validation section below to paste one UUID per line. The tool validates all of them and shows running Valid and Invalid counts alongside per-line results.
What is a NIL UUID?
The NIL UUID is the special all-zeros value 00000000-0000-0000-0000-000000000000, defined explicitly in RFC 4122 Section 4.1.7. It's technically valid, and this tool recognizes it as a distinct "Valid (Nil)" case rather than flagging it as malformed.
Does the validator accept UUIDs with curly braces (GUID format)?
Yes. Some systems, particularly Windows, format GUIDs with surrounding curly braces like {550e8400-e29b-41d4-a716-446655440000}. This validator strips braces (along with quotes and whitespace) before checking, so both forms are accepted.
What regex pattern is used for UUID validation?
The strict check is /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i — requiring a version digit of 1 through 8 and standard RFC 4122 variant bits. A looser pattern additionally accepts optional hyphens and braces before the strict check runs.
Is UUID the same as GUID?
Functionally, yes. GUID (Globally Unique Identifier) is Microsoft's term for the same 128-bit format defined by RFC 4122. The terms are interchangeable in almost every practical context.