js(JavaScript) 取任意长度随机字符串
使用js中使用随机函数
- Math.random() 是可以生成一个0~1之间 的十六位小数.
console.log(Math.random()) //0.3543794115500851
将数值转为字符串
- NumberObject.toString(radix).
- radix为可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值.
- 例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串.
- toString(36) 后面数字范围是2-36,如果写toString(35) 则范围是0-9a-y,没有z的35位数字字符,依次类推.
- 参数应该是转换为进制的基数(具体不是很清楚,有待研究)
使用 str.substr() 截取字符串
- str.substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符.
- 语法:stringObject.substr(start,length).
- 返回值:是一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符.
- substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
简单的截取一个随机字符串(数字类型)
- Math.random().toString(10).substr(2,5); //获取5位随机数字. 如 56520
- Math.random().toString(36).substr(2,4); //获取4位随机字符(0-9a-z 36进制数字字符 ) 如 : uu5i2
生成指定长度的随机字符串
function randomStr(length) {
//定义随机数的取值字符数组
const str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
//定义返回值
let result = '';
//遍历
for(let i = 0; i<length; i++){
// 取随机下标
let index = Math.floor(Math.random() * str.length);
//拼接在result后面
result += str[index];
}
//返回
return result;
}
浙公网安备 33010602011771号