1. ホーム
  2. ジャバスクリプト

[解決済み】有効なUUID/GUIDをテストする方法は?

2022-03-25 19:19:07

質問

変数に有効なUUID/GUID識別子が含まれているかどうかを確認する方法は?

現在、タイプ1と4の検証のみに興味がありますが、回答を制限するものではないはずです。

どのように解決するのですか?

現在、UUIDはRFC4122で規定されている通りです。しばしば無視されるエッジケースとして、NIL UUIDがあります。 ここで . 以下の正規表現はこれを考慮し、NIL UUIDにマッチするものを返します。NILでないUUIDのみを受け付けるUUIDについては、以下を参照してください。これらの解決策はどちらもバージョン1から5までのものです(3番目のブロックの最初の文字を参照してください)。

したがって、UUIDを検証するためには...

/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i

...バージョン1から5で、RFC4122に従った適切なVariantである、正規にフォーマットされたUUIDを持っていることを保証します。

注:中括弧 {} は正規のものではありません。これは、いくつかのシステムと使用法の産物です。

元の質問の要件を満たすように上記の正規表現を修正するのは簡単です。

HINT: 正規表現のグループ化/キャプチャ

NIL UUIDにマッチしないようにするため。

/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i