在开发过程中,随机生成字符串的需求很常见,例如:前后端进行加密需要带随机字符串等。目前我经常使用的方法是:
/**
* 获取随机字符串
* @param {number}} len
*/
function randomString (len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /** **默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
var maxPos = $chars.length;
var pwd = '';
for (let i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
Math.random()获取0~1之间的随机数(包括0,不包括1)
Math.floor() 向下进行取舍,Math.floor(12.3) // 12
charAt() 方法可返回指定位置的字符。
可以传入生成随机字符串的长度数,主要是这个思路。