基于Javascript实现的不重复ID的生成器
发布时间 - 2026-01-10 22:05:45 点击率:次我今天要做的就是做一个不重复ID的生成器
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID():String{
}
先看看下面的几个方法
1.生成[0,1)的随机数的Math.random,例如
//我这次运行生成的是:0.5834165740043102 Math.random()
2.获取当前时间戳Date.now
//现在时间戳是1482645606622 Date.now()
3.将10进制转换为其他进制的字符串 Number.toString
//将1482645606622转换成二进制:10101100100110100100100001001000011011110 (1482645606622).toString(2) //转换成16进制:159349090de MongDB中的ObjectID就是24位16进制数 (1482645606622).toString(16); //最大进制支持转为36进制,使用字符是0-9a-z :ix48wvry (1482645606622).toString(36)
GenNonDuplicateID的自我进化
1.随机数版本 v0.0.1
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(){
return Math.random().toString()
}
//生成一个类似 0.1283460319177394的ID
GenNonDuplicateID()
2.随机数版本16进制版本 v0.0.2
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(){
return Math.random().toString(16)
}
//函数将生成类似 0.c1615913fa915 的ID
GenNonDuplicateID()
3.随机数版本36进制版本 v0.0.3
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(){
return Math.random().toString(36)
}
//函数将生成类似 0.hefy7uw6ddzwidkwcmxkzkt9 的ID
GenNonDuplicateID()
4.随机数版本36进制版本 去掉"0." v0.0.4
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(){
return Math.random().toString(36).substr(3)
}
//函数将生成类似 8dlv9vabygks2cbg1spds4i 的ID
GenNonDuplicateID()
然而用一个随机数作为ID,随着使用次数的累积,必然会出现相同的两个ID
5.引入时间戳 的36微进制版本 v0.1.1
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(){
let idStr = Date.now().toString(36)
idStr += Math.random().toString(36).substr(3)
return idStr
}
//函数将生成类似 ix49sfsnt7514k5wpflyb5l2vtok9y66r 的ID
GenNonDuplicateID()
6.引入时间戳 的36微进制版本 加入随机数长度控制 v0.1.2
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(randomLength){
let idStr = Date.now().toString(36)
idStr += Math.random().toString(36).substr(3,randomLength)
return idStr
}
// GenNonDuplicateID(3) 将生成类似 ix49wl2978w 的ID
GenNonDuplicateID(3)
这样生成的ID前面几位总是相同,看着不爽,于是再改改
7. 引入时间戳 随机数前置 36进制 加入随机数长度控制 v0.1.3
/**
* 生成一个用不重复的ID
*/
function GenNonDuplicateID(randomLength){
return Number(Math.random().toString().substr(3,randomLength) + Date.now()).toString(36)
}
//GenNonDuplicateID()将生成 rfmipbs8ag0kgkcogc 类似的ID
GenNonDuplicateID()
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 生成器
# javascript GUID生成器实现代码
# JavaScript实现的微信二维码图片生成器的示例
# JS简单编号生成器实现方法(附demo源码下载)
# JavaScript中的迭代器和生成器详解
# EditPlus注册码生成器(js代码实现)
# fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
# js之弹出式窗口代码生成器
# javascript实现的鼠标链接提示效果生成器代码
# 用js实现的一个Flash滚动轮换显示图片代码生成器
# 随机数
# 转换成
# 的是
# 看着
# 几个
# 要做
# 几位
# 转换为
# Date
# random
# strong
# toString
# Number
# function
# GenNonDuplicateID
# String
# pre
# class
# brush
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
教你用AI润色文章,让你的文字表达更专业
linux top下的 minerd 木马清除方法
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
高防服务器如何保障网站安全无虞?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
5种Android数据存储方式汇总
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
bootstrap日历插件datetimepicker使用方法
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在IIS管理器中快速创建并配置网站?
香港服务器租用费用高吗?如何避免常见误区?
Laravel如何处理CORS跨域请求?(配置示例)
Laravel如何实现用户密码重置功能?(完整流程代码)
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
如何用低价快速搭建高质量网站?
如何在服务器上配置二级域名建站?
PythonWeb开发入门教程_Flask快速构建Web应用
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
EditPlus中的正则表达式 实战(1)
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
如何在IIS服务器上快速部署高效网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何在IIS中配置站点IP、端口及主机头?
iOS正则表达式验证手机号、邮箱、身份证号等
如何在阿里云香港服务器快速搭建网站?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
EditPlus中的正则表达式实战(5)
php485函数参数是什么意思_php485各参数详细说明【介绍】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Android自定义listview布局实现上拉加载下拉刷新功能
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel如何实现API资源集合?(Resource Collection教程)
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
利用python获取某年中每个月的第一天和最后一天
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何在IIS中新建站点并配置端口与IP地址?
如何实现javascript表单验证_正则表达式有哪些实用技巧
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
js代码实现下拉菜单【推荐】
如何快速搭建安全的FTP站点?

