广州站停运最新消息,网络热词缩写,沧源网站建设,网页布局实例js最新随机字符串#xff0c;进制数随机字符串#xff0c;更优秀的随机字符串方式#xff0c;你绝对没用过的随机字符串方式#xff0c;可控制位数#xff01;
函数封装和传参
首先我们#xff0c;要封装这样一个函数#xff0c;首先要确定#xff0c;传入哪些参数。…js最新随机字符串进制数随机字符串更优秀的随机字符串方式你绝对没用过的随机字符串方式可控制位数
函数封装和传参
首先我们要封装这样一个函数首先要确定传入哪些参数。
字符串的长度
就这一个参数就可以了现在是这样
function randomString(len6){}随机数转字符串
数字转字符串有两种方式一种把所有随机字符定义成为一个数组例如
const arr 1234567890qwertyuiopasdfghjklzxcvbnm.split()第二步
function randomString(len6){const arr 1234567890qwertyuiopasdfghjklzxcvbnm.split()let text for(let i 0;ilen;i){const randomInt parseInt(Math.random()*len)if(randomIntarr.length){textarr[arr.length-1]continue;}textarr[randomInt]}return text
}但是这种方式是最传统的且代码冗长不是我们想要的
接下来就是压轴的我们最新颖的方式进制数转随机字符串
首先我们知道进制是缝进制顶上的数字就进一二进制是缝二进一比如2转成二进制就是11。通常我们使用的颜色进制码大家都知道是16进制就已经存在字符串了。其实传统十进制以上就已经存在字符串了。
重点
那我们想要在随机字符串出现全的字母怎么办呢我们知道英语字母一共26个十进制以上才会有字母。那么我们把随机出来的数字转成
36进制即可怎么做呢
Math.random().toString(36)看到没就是如此简单没想到吧
然后这样出来可以吗肯定不行还是没想到吧 这样出来的结果可能是0.d3v9gd3wxr5这种的前面还有0和小数点那然后怎么去掉呢你是不是也没猜到其实也非常简单
function randomString(len6){Math.random().toString(36).substring(2,len)
}但是这种情况存在问题有没有可能你随机出来的数字长度不满足你len传入的数字那怎么办呢 你别慌我有办法可以在最后面补充0
function randomString(len6){Math.random().toString(36).substring(2,len).padEnd(len,0)
}但是如果len太长你全补充0是不是不太好太不自然了那有没有办法呢你是不是拿它没办法了 别慌我有办法经过测试Math.random().toString(36).length最低的长度基本是11位那么我们可以判断11位如果都不到就补0如果超了11位就递归调用自己直到满足len即可
function randomString(len6){if(len11){return Math.random().toString(36).substring(2,2len).padEnd(len,0)}return randomString(11)randomString(len-11)
}恭喜你这样就做到最完美了