Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сгенерировать UUID

Короткий ответ

crypto.randomUUID() возвращает случайный UUID версии 4 — 36 символов с дефисами:

const id = crypto.randomUUID();
 
console.log(id.length, id.split('-').length);

Результат:

36 5

Проверка формата

UUID состоит из шестнадцатеричных цифр в группах по 8, 4, 4, 4 и 12:

const isUuid = (value) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);
 
console.log(isUuid(crypto.randomUUID()));
console.log(isUuid('123-abc'));

Результат:

true
false

В Node.js

В Node.js ту же функцию можно импортировать и из node:crypto:

import { randomUUID } from 'node:crypto';
 
console.log(randomUUID().length);

Результат:

36

Частая ошибка

В браузере crypto.randomUUID() работает только на защищённых страницах — https или localhost. На обычной http-странице его нет. Не собирайте идентификаторы из Math.random(): его значения предсказуемы и могут повторяться.

console.log(typeof crypto.randomUUID);

Результат:

function

Функции из этого ответа

  • crypto.randomUUID — Создаёт случайный уникальный идентификатор (UUID).

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.