js生成唯一文件名
2020-07-03 本文已影响0人
前端勾魂师
1.核心代码
// 方法一
/**
* 生成唯一文件名
* @param {Number} len 生成的文件名长度
* @param {Number} radix 指定基数
*/
function getuuid(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
var uuid = []
var i = 0
radix = radix || chars.length
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
} else {
var r
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
uuid[14] = '4'
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16
uuid[i] = chars[(i === 19) ? (r & 0x3) | 0x8 : r]
}
}
}
return uuid.join('')
}
// 方法二
/**
* 生成唯一文件名 时间戳 + 随机数
* @param {Number} len 生成的文件名长度
* @param {Number} radix 指定基数
*/
function getTimeId(len, radix) {
if (len) {
const time = new Date().getTime()
const uuid = getuuid(len, radix)
return `${time}${uuid}`
} else {
console.log('请输入长度')
}
}
2.测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js生成唯一文件名</title>
<script type="text/javascript">
/**
* 生成唯一文件名
* @param {Number} len 生成的文件名长度
* @param {Number} radix 指定基数
*/
function getuuid(len, radix) {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
var uuid = []
var i = 0
radix = radix || chars.length
if (len) {
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
} else {
var r
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
uuid[14] = '4'
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16
uuid[i] = chars[(i === 19) ? (r & 0x3) | 0x8 : r]
}
}
}
return uuid.join('')
}
/**
* 生成唯一文件名 时间戳 + 随机数
* @param {Number} len 生成的文件名长度
* @param {Number} radix 指定基数
*/
function getTimeId(len, radix) {
if (len) {
const time = new Date().getTime()
const uuid = getuuid(len, radix)
return `${time}${uuid}`
} else {
console.log('请输入长度')
}
}
window.onload = function() {
var fileName1 = getuuid(8, 12)
var fileName2 = getTimeId(8, 12)
console.log(fileName1, 'fileName1', fileName2, 'fileName2')
}
</script>
</head>
<body>
</body>
</html>
-
效果展示
生成唯一文件名.png