javascript隨機(jī)生成用戶(hù)名的實(shí)現(xiàn)方式
javascript隨機(jī)生成用戶(hù)名
這幾天忙著搭一個(gè)社區(qū),前端主要vue+antd,后端使用express+MongoDB。
在注冊(cè)用戶(hù)的環(huán)節(jié),如果前端沒(méi)有填寫(xiě)用戶(hù)名,后端就給他隨機(jī)生成一個(gè)。

主要方法函數(shù)
randomUser.js
// 第一個(gè)參數(shù)為你想生成的固定的文字開(kāi)頭比如: 微信用戶(hù)xxxxx
// 第二個(gè)為你想生成出固定開(kāi)頭文字外的隨機(jī)長(zhǎng)度
function random(prefix, randomLength) {
// 兼容更低版本的默認(rèn)值寫(xiě)法
prefix === undefined ? prefix = "" : prefix;
randomLength === undefined ? randomLength = 8 : randomLength;
// 設(shè)置隨機(jī)用戶(hù)名
// 用戶(hù)名隨機(jī)詞典數(shù)組
let nameArr = [
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
["a", "b", "c", "d", "e", "f", "g", "h", "i", "g", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
]
// 隨機(jī)名字字符串
let name = prefix;
// 循環(huán)遍歷從用戶(hù)詞典中隨機(jī)抽出一個(gè)
for (var i = 0; i < randomLength; i++) {
// 隨機(jī)生成index
let index = Math.floor(Math.random() * 2);
let zm = nameArr[index][Math.floor(Math.random() * nameArr[index].length)];
// 如果隨機(jī)出的是英文字母
if (index === 1) {
// 則百分之50的概率變?yōu)榇髮?xiě)
if (Math.floor(Math.random() * 2) === 1) {
zm = zm.toUpperCase();
}
}
// 拼接進(jìn)名字變量中
name += zm;
}
// 將隨機(jī)生成的名字返回
return name;
}
module.exports = random

因?yàn)閿?shù)據(jù)要入庫(kù),所以此方法我寫(xiě)在后端,用的是module模塊導(dǎo)出,require()函數(shù)來(lái)加載模塊。
放在前端的話(huà),建議使用export 導(dǎo)出,import導(dǎo)入!
至于區(qū)別,詳細(xì)的自己去查文檔,我在這就放個(gè)簡(jiǎn)單的說(shuō)明。

調(diào)下接口看看
手機(jī)號(hào)隨便填的,至于是哪位大冤種的,就不得而知了。

嗯。接口是返回成功了。

看看數(shù)據(jù)庫(kù),也沒(méi)問(wèn)題,可以看到username是隨機(jī)生成的。

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
學(xué)習(xí)JavaScript設(shè)計(jì)模式之代理模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的狀態(tài)模式,對(duì)JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01
onsubmit阻止form表單提交與onclick的相關(guān)操作
return false會(huì)阻止表單提交,基本上關(guān)于onsubmit=return false有以下幾點(diǎn)要注意的地方,學(xué)習(xí)后臺(tái)編程的朋友一定要知道。2010-09-09
JavaScript常見(jiàn)函數(shù)類(lèi)型和用途實(shí)現(xiàn)場(chǎng)景分析
在JavaScript中,除了惰性函數(shù)和防抖函數(shù)外,還有許多其他有用的函數(shù)模式和功能函數(shù),以下是一些常見(jiàn)的函數(shù)類(lèi)型和用途,感興趣的朋友一起看看吧2024-12-12
js獲取input長(zhǎng)度并根據(jù)頁(yè)面寬度設(shè)置其大小及居中對(duì)齊
這篇文章主要介紹了js獲取input長(zhǎng)度并根據(jù)頁(yè)面寬度設(shè)置其大小及居中對(duì)齊的方法,需要的朋友可以參考下2014-08-08
原生javascript實(shí)現(xiàn)圖片放大鏡效果
這篇文章主要為大家詳細(xì)介紹了原生javascript實(shí)現(xiàn)圖片放大鏡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
利用Js的console對(duì)象,在控制臺(tái)打印調(diào)式信息測(cè)試Js的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇利用Js的console對(duì)象,在控制臺(tái)打印調(diào)式信息測(cè)試Js的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11

