js随机标识
本文介绍js中生成随机数的几种方法。
时间戳加随机数
1
2
3function generateNaiveId() {
return Date.now().toString(36) + Math.random().toString(36).substr(2); // 'mjmj7s898exgxm62eqc'
}字符串随机抽取
1
2
3
4
5
6
7
8function generateNaiveId(len = 18) {
const maxStr = `0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;
let res = '';
for(let i = 0; i < len; i++) {
res += maxStr[Math.floor(Math.random() * maxStr.length)]
}
return res; // '8fYti8o8NLZAX7Xpuj'
}第三方包uuid
1
2
3
4import { v4 as uuidv4 } from 'uuid';
function generateNaiveId() {
return uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
}通过浏览量内置crypto模块
1
2
3function generateNaiveId() {
return crypto.randomUUID(); // 'df1d45ee-0241-4934-9536-29eddb4d2f69'
}
- 注意
crypto.randomUUID是专业的随机数生成工具,但是对浏览器版本要求比较高(chrome92以上),而且需要安全的上下文(https或者localhost等),使用中需要做好兼容性判断。