前端开发之JS生成32位随机数的方法举例
作者:三掌柜666 发布时间:2024-04-19 09:56:26
前言
在前端开发过程中,关于JS逻辑相关的使用相比都不陌生,尤其是在日常开发中使用到的常用的逻辑内容,如倒计时的使用、点击时间放重复点击、生成随机数等等,这些都是非常常用的内容。那么本篇博文就来分享一下关于JS生成32随机数的方法,该知识点是实际开发必备知识点,值得收藏,记录归纳一下,方便后期查阅使用。
随机数概念
随机数是专门的随机试验的结果。在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等等。产生随机数有多种不同的方法。这些方法被称为随机数发生器。随机数最重要的特性是:它所产生的后面的那个数与前面的那个数毫无关系。
使用场景
在前端开发中,关于随机数生成的实际业务场景,大概有以下几个方面:在支付的时候需要生成支付流水号(主要是微信支付,一般是32位随机数),在集成一些第三方登录时候需要传递一个32位随机数(如中国移动获取当前手机号的业务场景需要随机数),以及生成uuid或者后台需要的唯一标识(也是32位随机数)。
示例说明
废话不多说,这里直接来分享一下实际生成32位随机数的示例代码,如下所示:
示例一:生成32位随机流水号
/*默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1*/
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPo = $chars.length;
var randomNum = '';
for (var i = 0; i < 32; i++) {
randomNum += $chars.charAt(Math.floor(Math.random() * maxPo));
}
console.log("randomNum:",randomNum)
或者 生成32位随机流水号(以函数形式来提现,大写字母)
function getRandom() {
var array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"],
randomNum = "";
for(var i = 0; i < 32; i++) {
randomNum += array[parseInt(Math.random() * 36)];
}
return randomNum;
}
示例二:传给后台一个随机的唯一标识的参数(32位随机数,小写字母)。
function getNum(){
var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var randomNum = "";
for(var i=0;i<32;i++){
var id = parseInt(Math.random()*61);
randomNum += chars[id];
}
return randomNum;
}
引申
上面介绍的是比较简单的随机生成32位随机数的方法,那么再来看一下其他方式的生成随机数的方法,具体示例如下所示:
示例一:使用randomString,val表示长度,默认32位
function randomString(val) {
val = val || 32;
var chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
var maxPo = chars.length,
randomNum = "";
for (i = 0; i < val; i++) {
randomNum += chars.charAt(Math.floor(Math.random() * maxPo));
}
return randomNum;
}
alert(randomString(32));
示例二:生成从100000~999999的随机数
function getRandomNum(min, max) {
var range = max - min;
var rand = Math.random();
return(min + Math.round(rand * range));
}
var num = getRandomNum(10000, 999999);
alert(num);
示例三:对已经定义过的数组字符集合进行随机选取
var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
function generateMixed(num) {
var result = "";
for(var i = 0; i < num ; i ++) {
var id = Math.ceil(Math.random()*32);
result += chars[id];
}
return result;
}
alert(generateMixed(8));
示例四:生成随机数之后转换成36进制,再进行截取
//如Math.random() 生成随机数字, eg: 0.123456789,又如.toString(36) 转化成36进制 : "0.4fzyo82mvyr”,再如.slice(-8); 截取最后八位 : "yo82mvyr"。
var str = Math.random().toString(36).slice(-7);
alert(str);
示例五:把字符串集合随机排序,随机输出指定的长度
function randomString(num) {
var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var result = '';
for (var i = num; i > 0; --i) {
result += str[Math.floor(Math.random() * str.num)];
}
return result;
}
alert(randomString(7));
拓展
一般情况下,在前端开发中需要生成的都是32位随机数,但是也不排除其他的需求,如6位随机数也有需求,具体的随机生成6位数的操作如下所示:
<!-- 生成六位随机数 -->
<script type="text/javascript">
var number = '';
for(var i = 0;i<6;i++) {
number += Math.floor(Math.random()*10);
}
console.log(number);
</script>
最后
通过本文关于前端开发中JS生成32随机数的使用总结的介绍,如果认真阅读并且实践示例,尤其是从事前端开发不久的开发者来说尤为重要,是一篇值得阅读的文章,且在实际开发中也是必用知识点,所以说这个知识点是必备的,重要性就不在赘述。欢迎关注,一起交流,共同进步。
来源:https://blog.csdn.net/CC1991_/article/details/127607882


猜你喜欢
- 一 、背景一般在数据仓库环境中,我们可以很方便的使用row_number函数根据某个维度来对数据进行分组,实现每个组内数据编号排序的效果。如
- 层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count、sum、size等等,没有更深入
- 我就废话不多说了,大家还是直接看代码吧!import matplotlib.pyplot as pltimport numpy as npf
- 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义cl
- wx包中的方法都是以大写字母开头的,而这和Python的习惯是相反的。本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带
- 1 . 如何让自己的本地APACHE服务器支持.htaccess 如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简
- 英文原文:http://www.usabilitypost.com/2009/04/15/8-characteristics-of-succ
- 1.过滤器的使用1.过滤器和测试器在Python中,如果需要对某个变量进行处理,我们可以通过函数来实现。在模板中,我们则是通过过滤器来实现的
- 网页布局中常有的一种情况就是网页主体部分分成一行两列;而在很多种情况下,设计师们常把左右两列的背景色设计成不同色彩,以实现内容块的明显区分;
- 1. 开发1.1. 架构Gorm使用可链接的API,*gorm.DB是链的桥梁,对于每个链API,它将创建一个新的关系。db, err :=
- 本文实例为大家分享了js实现简单贪吃蛇效果的具体代码,供大家参考,具体内容如下上代码之前,先给大家看一下效果:是不是想说:我能这样玩一天…话
- 因为函数或类都是对象,它们也能被四处传递。它们又是可变对象,可以被更改。在函数或类对象创建后但绑定到名字前更改之的行为为装饰(decorat
- 协程协程(co-routine,又称微线程)是一种多方协同的工作方式。当前执行者在某个时刻主动让出(yield)控制流,并记住自身当前的状态
- 一、基本概念APScheduler全称Advanced Python Scheduler 作用为在指定的时间规则执行指定的作业。指定时间规则
- 运行环境:win10 64位 py 3.6 pycharm 2018.1.1导入对应的包和数据import matplotlib.pyplo
- 1. import_table介绍上期技术分享我们介绍了MySQL Load Data的4种常用的方法将文本数据导入到MySQL,这一期我们
- Oracle数据库在使用的过程中常常会遇到这样或那样的问题,而这些问题常常又使我们感到很困惑,本文我们总结了Oracle数据库在使用过程中的
- 查询本日记录SELECT * FROM messages WHERE CONVERT(Nvarchar, CreateDate, 111)
- 一、观察者模式观察者模式,必须包含 “观察者” 和 “被观察者&rdqu
- 然后我们在Interactive Python prompt中测试了一下:>>> import subprocess &n