Wie kann man prüfen, ob eine Variable einen gültigen UUID/GUID-Bezeichner enthält?
Ich bin derzeit nur an der Validierung der Typen 1 und 4 interessiert, aber das sollte keine Einschränkung für Ihre Antworten sein.
Wie kann man prüfen, ob eine Variable einen gültigen UUID/GUID-Bezeichner enthält?
Ich bin derzeit nur an der Validierung der Typen 1 und 4 interessiert, aber das sollte keine Einschränkung für Ihre Antworten sein.
Derzeit sind UUIDs wie in RFC4122 spezifiziert. Ein oft vernachlässigter Grenzfall ist die NIL-UUID, die ici . Die folgende Regex berücksichtigt dies und liefert eine Übereinstimmung für eine NIL UUID. Siehe unten für eine UUID, die nur Nicht-NIL UUIDs akzeptiert. Diese beiden Lösungen gelten für die Versionen 1 bis 5 (siehe das erste Zeichen des dritten Blocks).
Um eine UUID zu validieren, muss daher...
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i
...stellt sicher, dass Sie eine kanonisch formatierte UUID mit den Versionen 1 bis 5 und der entsprechenden Variante gemäß RFC4122 haben.
HINWEIS: Hosenträger {
y }
sind nicht kanonisch. Sie sind ein Artefakt einiger Systeme und Verwendungen.
Die obige Regex kann leicht geändert werden, um die Anforderungen der ursprünglichen Frage zu erfüllen.
TIPP: regex gruppieren/erfassen
Um einen Abgleich mit NIL UUID zu vermeiden:
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
Wenn Sie eine bestimmte UUID-Version prüfen oder validieren möchten, finden Sie hier die entsprechenden Regexe.
Beachten Sie, dass der einzige Unterschied ist die Versionsnummer die in
4.1.3. Version
Kapitel von UUID 4122 RFC .
Die Versionsnummer ist das erste Zeichen der dritten Gruppe: [VERSION_NUMBER][0-9A-F]{3}
:
UUID v1 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
UUID v2 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[2][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
UUID v3 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[3][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
UUID v4 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
UUID v5 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[5][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
Wenn Sie Node.js für die Entwicklung verwenden, ist es empfehlenswert, ein Paket namens Validator zu verwenden. Es enthält alle Regexe, die für die Validierung verschiedener Versionen von UUIDs erforderlich sind, sowie verschiedene andere Funktionen für die Validierung.
Hier ist der npm-Link: Prüfer
var a = 'd3aa88e2-c754-41e0-8ba6-4198a34aa0a2'
v.isUUID(a)
true
v.isUUID('abc')
false
v.isNull(a)
false
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.