سوال
چگونه می توانم GUID (شناسه های منحصر به فرد جهانی) در جاوا اسکریپت ایجاد کنم؟ GUID / UUID باید حداقل 32 کاراکتر داشته باشد و باید در محدوده ASCII باقی بماند تا هنگام عبور دادن آنها دچار مشکل نشود.
من مطمئن نیستم که چه روال هایی در همه مرورگر ها موجود است، تولید کننده اعداد تصادفی داخلی چقدر “تصادفی” است و غیره.
پاسخ
اکثر برنامه نویسان اینجا مایل به استفاده از ماژول uuid هستند. به خوبی تست شده و پشتیبانی می شود.
این تابع crypto.randomUUID() یک استاندارد در حال ظهور است که در Node.js و تعداد فزاینده ای از مرورگر ها پشتیبانی می شود. با این حال، از آنجایی که APIهای مرورگر جدید محدود به زمینههای امن هستند، این روش فقط برای صفحاتی که به صورت محلی ( localhost یا 127.0.0.1) یا از طریق HTTPS ارائه می شوند در دسترس است. اگر مایلید که این محدودیت برای crypto.randomUUID() شما برداشته شود، می توانید این مشکل GitHub را دنبال کنید.
اگر هیچ کدام از اینها برای شما کار نمی کند، این روش وجود دارد (بر اساس پاسخ اصلی به این سوال):
function uuidv4() {
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
);
}
console.log(uuidv4());
برای یادگیری جاوا اسکریپت می توانید از مسیر کارآموزی فرانت اند استفاده کنید.
پاسخها