1 前言
有时需要生成随机的用户(或机器人)昵称,头像,金币等,但又不想太生硬,可以现在网上爬一些常见昵称到文本中,然后读取出来,随机使用即可。
2 代码
var nickNameArr = []; function initNickName(){ var dirname =__dirname;
var nickname00 = fs.readFileSync(dirname+"/res/nickname00.txt","utf-8"); //把换行的都全局替换成空格,然后按空格分割为数组
var rn00 = nickname00.replace(/\r\n/g," ");
var nameArr00 = rn00.split(' '); nickNameArr = [].concat(nameArr00); console.log("nickNameArr length=",nickNameArr.length);
} function genName(){ var name = "";
var len =nickNameArr.length;
if(len > 0){
var pos = Math.floor(Math.random()*len);
name = nickNameArr[pos];
if(name.length == 0){ //防止拿到空白值,正常情况不会出现
genName();
}
} return name;
} //nickname00文本格式为每个昵称中间空一格或者换行,例子如下:
昵称1 昵称2 昵称3
nk1 nk2
nk3
昵称x
nk4
3 头像随机
function genHeadimg(){ var url_img = ""; var path = "./public/images/headImages/";
//实际使用用域名,内部测试ip如下
var ip = "127.0.0.1";
//如果有端口就写,如果没有,跳过
var port = "8888";
var path_link = "http://"+ip + ":" + port + "/public/images/headImages/"; var files = fs.readdirSync(path); var len = files.length;
var randNum = Math.floor(Math.random()*len);
var url_img = path_link + files[randNum];
console.log("genHeadimg rand link=",url_img); return url_img;
}
4 小结
金币等随机数只是数字的随机数,略。