1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- var rand = {
- alpha : "0123456789",
- smallLetter : "abcdefghijklmnopqrstuvwxyz",
- bigLetter : "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
- specialChars : ",.;:~!@#$%^&*-_",
- shuffle : function (arr) {
- var len = arr.length;
- var randindex, tmp;
- for (var i = len; i > 0; i--) {
- randindex = Math.floor(Math.random() * i);//随机数的产生范围每次都变化
- tmp = arr[randindex];
- arr[randindex] = arr[i - 1];
- arr[i - 1] = tmp;
- }
- return arr;
- },
- genRandStr : function (chars, length, unique) {
- var str = [];
- for (var i = 0; i < length; i++) {
- if (chars.length == 0) break;
- var index = this.rand(chars.length);
- str.push(chars[index])
- if (unique) {
- chars.splice(index, 1)
- }
- }
- return str;
- },
- getRndUniue : function (chars, length) {
- var _chars = this.shuffle(chars);
- return _chars.splice(0, length);
- },
- rand : function (max) {
- return Math.floor(Math.random() * max);
- },
- genRandStr : function (chars, length, unique) {
- var str = [];
- for (var i = 0; i < length; i++) {
- if (chars.length == 0) break;
- var index = this.rand(chars.length);
- str.push(chars[index])
- if (unique) {
- chars.splice(index, 1)
- }
- }
- return str;
- },
- randAlpha : function (length, unique) {
- var chars = this.alpha.split("");
- return this.genRandStr(chars, length, unique);
- },
- randSmallLetter : function (length, unique) {
- var chars = this.smallLetter.split("");
- return this.genRandStr(chars, length, unique);
- },
- randBigLetter : function (length, unique) {
- var chars = this.bigLetter.split("");
- return this.genRandStr(chars, length, unique)
- },
- randCombin: function (combin, length, unique){
- var chars = "";
- var combin = combin.split(",");
- for (var i in combin) {
- var str = combin[i];
- switch (str) {
- case "alpha":
- chars += this.alpha;
- break;
- case "smallLetter":
- chars += this.smallLetter;
- break;
- case "bigLetter":
- chars += this.bigLetter;
- break;
- case "specialChars":
- chars += this.specialChars;
- break;
- default:
- break;
- }
- }
- //如果长度不够,就用当前串随机出不够长度的内容补齐
- if (chars.length < length) {
- var rndStr = this.shuffle(chars.split("")).join("");
- chars += rndStr.substr(0, length - chars.length)
- }
- if (unique) return this.getRndUniue(chars.split(""), length).join("");
- return this.genRandStr(chars, length, unique).join("");
- },
- }
- module.exports = rand
|