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.
Neben Gambols Antwort die die Aufgabe erfüllen werden in fast allen Fällen In allen bisherigen Antworten wurde übersehen, dass die gruppierte Formatierung (8-4-4-4-12) nicht zwingend erforderlich ist, um GUIDs in Text kodieren . Sie wird sehr häufig verwendet, aber natürlich kann auch eine einfache Kette von 32 hexadezimalen Ziffern gültig sein. [1] regex erweitern. :
/^[0-9a-f]{8}-?[0-9a-f]{4}-?[1-5][0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$/i
[1] Die Frage bezieht sich auf siehe ing variabel s, also sollten wir auch die benutzerunfreundliche Form einbeziehen.
Alle bisher veröffentlichten typspezifischen Regexe scheitern am "Typ 0" Nil UUID, definiert in 4.1.7 des RFC als:
Die nil UUID ist eine spezielle Form der UUID, bei der alle 128 Bits auf Null gesetzt sind:
00000000-0000-0000-0000-000000000000
Um Wolfs Antwort abzuwandeln:
/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-5][0-9a-f]{3}-?[089ab][0-9a-f]{3}-?[0-9a-f]{12}$/i
Oder, um einen "Typ 0" ohne alle Nullen richtig auszuschließen, haben wir das Folgende (Dank an Luke):
/^(?:[0-9a-f]{8}-?[0-9a-f]{4}-?[1-5][0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i
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.