Как сгенерировать 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).