网站首页 > 博客文章 正文
一、方式1:Math.random() 和 Date.now()
(1)完整源码
// 直接使用(缺少时间戳)
const randomString = () => Math.random().toString(36).slice(2);
console.log(randomString()); // 4uz4qq4m3a
// 组合时间戳和随机函数使用,减少重复(随机字符串越长越不容易重复哈,也是可行的一个法子)
function generateUniqueId() {
const timestamp = Date.now();
const random = Math.random().toString(36).substr(2, 9); // 生成一个9位的随机字符串
return timestamp + '-' + random;
}
注意:这种方法简单但可能不够唯一,因为 Math.random() 的随机性有限,并且 Date.now()的精度是毫秒级,可能在极短时间内生成重复的ID。
(2)结果演示
二、方式2:cryto 模块(Node.js)
这种方法更加靠谱比原生的JavaScript (Math.random())。
const crypto = require('crypto');
function generateUUID() {
return crypto.randomBytes(16).toString('hex').match(/.{1,4}/g).join('-');
}
// 这会生成一个标准的UUID v4格式的字符串
三、方式3:uuid 模块
① 前端安装 uuid 模块
npm install uuid
# 或者
yarn add uuid
② JavaScript 引入 uuid
import { v4 as uuidv4 } from 'uuid';
const myUUID = uuidv4();
console.log(myUUID); // 输出一个版本4的UUID
猜你喜欢
- 2025-07-28 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- 2025-07-28 SpringBoot实现单点登录(SSO)的4种方案
- 2025-07-28 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- 2025-07-28 SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- 2025-07-28 Java 微服务从源码实战开始 | Gitee 项目推荐
- 2025-07-28 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- 2025-07-28 Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 2025-07-28 项目中不用redis分布式锁,怎么防止用户重复提交?
- 2025-07-28 SpringBoot项目日志打印traceId生成
- 2025-07-28 如何实现PC端网站扫码登录操作?(网页 扫码)
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)