2行代码生成指定长度字符串
/**
* 生成长度为len的包含a-z、A-Z、0-9的随机字符串
*/
function generateStr(len = 18) {
// 一行代码生成0-9、A-Z、a-z、总长度为62的字符数组
var arr = [...new Array(62)].map((item, i) => String.fromCharCode(i + (i < 10 ? 0 : (i < 36 ? 7 : 13)) + 48));
return [...new Array(len)].map(() => arr[Math.floor(Math.random() * arr.length)]).join('');
}
不包含大写字母:
/**
* 生成长度为len的包含0-9、a-z的随机字符串
*/
function generateStr(len = 18) {
// 一行代码生成0-9、a-z、总长度为36的字符数组
var arr = [...new Array(36)].map((item, i) => String.fromCharCode(i + (i < 10 ? 48 : 87)));
return [...new Array(len)].map(() => arr[Math.floor(Math.random() * arr.length)]).join('');
}
1行代码生成指定长度数字
这种方法有缺点,低概率会出现位数不足的问题(原因是0.00566 * 100000 = 566,会丢失前面的0),不推荐使用。
// len 最多16,可能出现
function generateNum(len = 16) {
return Math.floor(Math.random() * Math.pow(10, len));
}