前端開發(fā)之JS生成32位隨機(jī)數(shù)的方法舉例
前言
在前端開發(fā)過程中,關(guān)于JS邏輯相關(guān)的使用相比都不陌生,尤其是在日常開發(fā)中使用到的常用的邏輯內(nèi)容,如倒計(jì)時的使用、點(diǎn)擊時間放重復(fù)點(diǎn)擊、生成隨機(jī)數(shù)等等,這些都是非常常用的內(nèi)容。那么本篇博文就來分享一下關(guān)于JS生成32隨機(jī)數(shù)的方法,該知識點(diǎn)是實(shí)際開發(fā)必備知識點(diǎn),值得收藏,記錄歸納一下,方便后期查閱使用。
隨機(jī)數(shù)概念
隨機(jī)數(shù)是專門的隨機(jī)試驗(yàn)的結(jié)果。在統(tǒng)計(jì)學(xué)的不同技術(shù)中需要使用隨機(jī)數(shù),比如在從統(tǒng)計(jì)總體中抽取有代表性的樣本的時候,或者在將實(shí)驗(yàn)動物分配到不同的試驗(yàn)組的過程中,或者在進(jìn)行蒙特卡羅模擬法計(jì)算的時候等等。產(chǎn)生隨機(jī)數(shù)有多種不同的方法。這些方法被稱為隨機(jī)數(shù)發(fā)生器。隨機(jī)數(shù)最重要的特性是:它所產(chǎn)生的后面的那個數(shù)與前面的那個數(shù)毫無關(guān)系。
使用場景
在前端開發(fā)中,關(guān)于隨機(jī)數(shù)生成的實(shí)際業(yè)務(wù)場景,大概有以下幾個方面:在支付的時候需要生成支付流水號(主要是微信支付,一般是32位隨機(jī)數(shù)),在集成一些第三方登錄時候需要傳遞一個32位隨機(jī)數(shù)(如中國移動獲取當(dāng)前手機(jī)號的業(yè)務(wù)場景需要隨機(jī)數(shù)),以及生成uuid或者后臺需要的唯一標(biāo)識(也是32位隨機(jī)數(shù))。
示例說明
廢話不多說,這里直接來分享一下實(shí)際生成32位隨機(jī)數(shù)的示例代碼,如下所示:
示例一:生成32位隨機(jī)流水號
/*默認(rèn)去掉了容易混淆的字符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位隨機(jī)流水號(以函數(shù)形式來提現(xiàn),大寫字母)
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;
}示例二:傳給后臺一個隨機(jī)的唯一標(biāo)識的參數(shù)(32位隨機(jī)數(shù),小寫字母)。
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;
}引申
上面介紹的是比較簡單的隨機(jī)生成32位隨機(jī)數(shù)的方法,那么再來看一下其他方式的生成隨機(jī)數(shù)的方法,具體示例如下所示:
示例一:使用randomString,val表示長度,默認(rèn)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的隨機(jī)數(shù)
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);示例三:對已經(jīng)定義過的數(shù)組字符集合進(jìn)行隨機(jī)選取
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));示例四:生成隨機(jī)數(shù)之后轉(zhuǎn)換成36進(jìn)制,再進(jìn)行截取
//如Math.random() 生成隨機(jī)數(shù)字, eg: 0.123456789,又如.toString(36) 轉(zhuǎn)化成36進(jìn)制 : "0.4fzyo82mvyr”,再如.slice(-8); 截取最后八位 : "yo82mvyr"。
var str = Math.random().toString(36).slice(-7); alert(str);
示例五:把字符串集合隨機(jī)排序,隨機(jī)輸出指定的長度
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));拓展
一般情況下,在前端開發(fā)中需要生成的都是32位隨機(jī)數(shù),但是也不排除其他的需求,如6位隨機(jī)數(shù)也有需求,具體的隨機(jī)生成6位數(shù)的操作如下所示:
<!-- 生成六位隨機(jī)數(shù) -->
<script type="text/javascript">
var number = '';
for(var i = 0;i<6;i++) {
number += Math.floor(Math.random()*10);
}
console.log(number);
</script>最后
通過本文關(guān)于前端開發(fā)中JS生成32隨機(jī)數(shù)的使用總結(jié)的介紹,如果認(rèn)真閱讀并且實(shí)踐示例,尤其是從事前端開發(fā)不久的開發(fā)者來說尤為重要,是一篇值得閱讀的文章,且在實(shí)際開發(fā)中也是必用知識點(diǎn),所以說這個知識點(diǎn)是必備的,重要性就不在贅述。歡迎關(guān)注,一起交流,共同進(jìn)步。
到此這篇關(guān)于前端開發(fā)之JS生成32位隨機(jī)數(shù)的文章就介紹到這了,更多相關(guān)JS生成32位隨機(jī)數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用js Math.random()函數(shù)生成n到m間的隨機(jī)數(shù)字
- Js生成隨機(jī)數(shù)/隨機(jī)字符串的方法小結(jié)【5種方法】
- js生成1到100的隨機(jī)數(shù)最簡單的實(shí)現(xiàn)方法
- JS生成某個范圍的隨機(jī)數(shù)【四種情況詳解】
- js生成隨機(jī)數(shù)的方法實(shí)例
- Javascript 生成指定范圍數(shù)值隨機(jī)數(shù)
- javascript生成不重復(fù)的隨機(jī)數(shù)
- js生成隨機(jī)數(shù)之random函數(shù)隨機(jī)示例
- javascript生成隨機(jī)數(shù)的方法
- JS簡單生成隨機(jī)數(shù)(隨機(jī)密碼)的方法
相關(guān)文章
使用Bootstrap Tabs選項(xiàng)卡Ajax加載數(shù)據(jù)實(shí)現(xiàn)
這篇文章主要介紹了使用Bootstrap Tabs選項(xiàng)卡Ajax加載數(shù)據(jù)實(shí)現(xiàn),以及遇到的問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
JavaScript架構(gòu)前端不能沒有監(jiān)控系統(tǒng)原因
這篇文章主要為大家介紹了為什么前端不能沒有監(jiān)控系統(tǒng)的原因,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
IE6-IE9中tbody的innerHTML不能賦值的解決方法
這篇文章主要介紹了IE6-IE9中tbody的innerHTML不能賦值的解決方法,需要的朋友可以參考下2014-06-06
JS數(shù)組的遍歷方式for循環(huán)與for...in
本節(jié)主要介紹了JS數(shù)組的遍歷方式for循環(huán)與for...in,需要的朋友可以參考下2014-07-07
JS在IE和FF下attachEvent,addEventListener學(xué)習(xí)筆記
今天小弄了一下JS事件,主要說一下FF和IE兼容的問題2009-11-11
extract-text-webpack-plugin用法詳解
這篇文章主要介紹了extract-text-webpack-plugin用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02

