JS實(shí)現(xiàn)隨機(jī)生成字符串(可指定長(zhǎng)度)的示例代碼
1.定義隨機(jī)截取字符串
const _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789';
2.定義隨機(jī)生成索引函數(shù)
/** * 隨機(jī)生成索引 * @param min 最小值 * @param max 最大值 * @param i 當(dāng)前獲取位置 */ function RandomIndex(min, max, i){ let index = Math.floor(Math.random()*(max-min+1)+min), numStart = _charStr.length - 10; //如果字符串第一位是數(shù)字,則遞歸重新獲取 if(i==0&&index>=numStart){ index = RandomIndex(min, max, i); } //返回最終索引值 return index; }
3.定義隨機(jī)生成字符串函數(shù)
/** * 隨機(jī)生成字符串 * @param len 指定生成字符串長(zhǎng)度 */ function getRandomString(len){ let min = 0, max = _charStr.length-1, _str = ''; //判斷是否指定長(zhǎng)度,否則默認(rèn)長(zhǎng)度為15 len = len || 15; //循環(huán)生成字符串 for(var i = 0, index; i < len; i++){ index = RandomIndex(min, max, i); _str += _charStr[index]; } return _str; }
4.調(diào)用
//隨機(jī)生成長(zhǎng)度為20的字符串 getRandomString(20); //輸出結(jié)果 //dJQ6UoEaEpXXAEBRQDl9
5.結(jié)合上述寫法,可以將其整合到一個(gè)函數(shù)中,來簡(jiǎn)化流程
具體如下:
/** * 隨機(jī)生成字符串 * @param len 指定生成字符串長(zhǎng)度 */ function getRandomString(len){ let _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789', min = 0, max = _charStr.length-1, _str = ''; //定義隨機(jī)字符串 變量 //判斷是否指定長(zhǎng)度,否則默認(rèn)長(zhǎng)度為15 len = len || 15; //循環(huán)生成字符串 for(var i = 0, index; i < len; i++){ index = (function(randomIndexFunc, i){ return randomIndexFunc(min, max, i, randomIndexFunc); })(function(min, max, i, _self){ let indexTemp = Math.floor(Math.random()*(max-min+1)+min), numStart = _charStr.length - 10; if(i==0&&indexTemp >=numStart){ indexTemp = _self(min, max, i, _self); } return indexTemp ; }, i); _str += _charStr[index]; } return _str; } //調(diào)用: getRandomString(30); //結(jié)果: //CvoNFNrOa6NECo3bFV8suMokE780NG
到此這篇關(guān)于JS實(shí)現(xiàn)隨機(jī)生成字符串(可指定長(zhǎng)度)的示例代碼的文章就介紹到這了,更多相關(guān)JS 隨機(jī)生成字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- js隨機(jī)生成字母數(shù)字組合的字符串 隨機(jī)動(dòng)畫數(shù)字
- JavaScript實(shí)現(xiàn)隨機(jī)產(chǎn)生字符串的方法分享
- Js生成隨機(jī)數(shù)/隨機(jī)字符串的方法小結(jié)【5種方法】
- JS實(shí)現(xiàn)生成由字母與數(shù)字組合的隨機(jī)字符串功能詳解
- JS簡(jiǎn)單生成由字母數(shù)字組合隨機(jī)字符串示例
- javascript創(chuàng)建含數(shù)字字母的隨機(jī)字符串方法總結(jié)
- JavaScript生成隨機(jī)字符串的方法
- javascript自動(dòng)生成包含數(shù)字與字符的隨機(jī)字符串
- JS生成隨機(jī)字符串的多種方法
- js 數(shù)組隨機(jī)字符串(廣告不重復(fù))
- js 按照指定間隔 向字符串中插入隨機(jī)字符串的實(shí)現(xiàn)代碼
相關(guān)文章
js(jquery)實(shí)現(xiàn)無刷新跳轉(zhuǎn)404頁(yè)面不存在效果
有時(shí)候我們希望臨時(shí)讓某個(gè)分類或者多個(gè)文章不能正常訪問,手動(dòng)給html文件改名?或者改后臺(tái)改程序?太麻煩了。用本文的js代碼很容易實(shí)現(xiàn),而且使用得當(dāng)很隱蔽。這篇文章主要介紹了js(jquery)實(shí)現(xiàn)無刷新跳轉(zhuǎn)404頁(yè)面不存在效果,需要的朋友可以參考下2023-04-04JavaScript實(shí)現(xiàn)in-place思想的快速排序方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)in-place思想的快速排序方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08利用函數(shù)的惰性載入提高javascript代碼執(zhí)行效率
在 addEvent 函數(shù)每次調(diào)用的時(shí)候都要走一遍,如果瀏覽器支持其中的一種方法,那么他就會(huì)一直支持了,就沒有必要再進(jìn)行其他分支的檢測(cè)了2014-05-05JS判斷空對(duì)象的幾個(gè)方法大盤點(diǎn)
在做數(shù)據(jù)交互的時(shí)候,我們經(jīng)常需要判斷數(shù)據(jù)或者對(duì)象是不是為空,避免當(dāng)接口異常時(shí)候前端頁(yè)面崩潰,下面這篇文章主要給大家介紹了關(guān)于JS判斷空對(duì)象的幾個(gè)方法,需要的朋友可以參考下2022-02-02Javascript中JSON數(shù)據(jù)分組優(yōu)化實(shí)踐及JS操作JSON總結(jié)
這篇文章主要介紹了Javascript中JSON數(shù)據(jù)分組優(yōu)化實(shí)踐,文中還對(duì)JS操作JSON的要領(lǐng)做了總結(jié),需要的朋友可以參考下2017-12-12javascript+mapbar實(shí)現(xiàn)地圖定位
地圖定位 圖吧地圖定位 附j(luò)avascript源碼每行都有注釋2010-04-04JS動(dòng)態(tài)加載當(dāng)前時(shí)間的方法
這篇文章主要介紹了JS動(dòng)態(tài)加載當(dāng)前時(shí)間的方法,涉及html的onload方法及javascript操作時(shí)間的技巧,需要的朋友可以參考下2015-02-02