第一种:内置函数方法Math.random(); //该方法产生一个0到1之间的浮点数 延伸: Math.floor(Math.random()*10 1); //生成1-10的随机数 Math.floor(Math.random()*10);//生成0-9的随机数 函数方法: function rand ( n ) { return ( Math.floor ( Math.random ( ) * n 1 ) ); } // 调用方法 rand(100);生成1-100的随机数 ,现在小编就来说说关于javascript验证实例?下面内容希望能帮助到你,我们来一起看看吧!

javascript验证实例(JavaScript常用方法一JS生成随机字符串)

javascript验证实例

一、JS生成随机字符串

第一种:内置函数方法

Math.random(); //该方法产生一个0到1之间的浮点数。 延伸: Math.floor(Math.random()*10 1); //生成1-10的随机数 Math.floor(Math.random()*10);//生成0-9的随机数 函数方法: function rand ( n ) { return ( Math.floor ( Math.random ( ) * n 1 ) ); } // 调用方法 rand(100);生成1-100的随机数。

第二种:奇妙的写法(最近凑的解决方案)

优雅的获取数字 字母组成的字符串 Math.random().toString(36).slice(-8) 或者: ( new Date).toString(36).slice(-5); Math.random(); // 结果为0-1间的一个随机数(包括0,不包括1) .toString(36) // 将数字转换为基数为36的字符串,即使用字符0-9和az。 .slice(-8); // 截取最后八位 : "yo82mvyr" 36进制包含的字符为 0-9,a-z 10进制包含的字符为为 0-9 16进制包含的字符为 0-9,a-f 缺点: 只能生成有 0-9、a-z字符组成的字符串 由于 Math.random()生成的18位小数,可能无法填充36位,最后几个字符串,只能在指定的几个字符中选择。导致随机性降低。 某些情况下会返回空值。例如,当随机数为 0, 0.5, 0.25, 0.125...时,返回为空值。 在我的电脑上执行这种方式生成字符串。1000万次中出现重复的概率为 0。 改进: (Math.random().toString(36) '00000000000000000').slice(2, N 2) 其次,上面的原始和解决方案都将字符串大小N限制为16个字符。 以下将返回任意N的大小为N的字符串(但请注意,使用N> 16不会增加随机性或降低碰撞概率): Array(N 1).join((Math.random().toString(36) '00000000000000000').slice(2, 18)).slice(0, N) 说明: 1、在[0,1)范围内选取一个随机数,即在0(包含)和1(不包括)之间。 将数字转换为基数为36的字符串,即使用字符0-9和az。 2、用零填充(解决第一个问题)。 3、切掉领先的'0'。 前缀和额外填充零。 4、重复该字符串足够多的时间以使其中至少有N个字符(通过使用较短的随机字符串作为分隔符加入空字符串)。 5、从字符串中切分N个字符。 更多的想法: 1、这个解决方案不使用大写字母,但几乎在所有情况下(没有双关语意思),这并不重要。 2、在Chrome中测量原始答案中N = 16时的最大字符串长度。 在Firefox中,它的N = 11。但正如所解释的,第二种解决方案是支持任何请求的字符串长度,而不是添加随机性,所以它没有太大区别。 3、所有返回的字符串返回的概率相等,至少就Math.random()返回的结果均匀分布(在任何情况下,这不是密码强度随机性)。 4、并非所有可能的大小为N的字符串都可能被返回。 在第二种解决方案中,这是显而易见的(因为较小的字符串仅被复制),但在原始答案中也是如此,因为在转换为基数-36时,最后几位可能不是原始随机位的一部分。 具体来说,如果您查看Math.random()。toString(36)的结果,您会注意到最后一个字符不是均匀分布的。 同样,在几乎所有情况下,它都没有关系,但是我们从最开始的字符串开始,而不是随机字符串的结尾,以便短字符串(例如N = 1)不受影响。

第三种:自定义函数(生成指定位数的数字字母混合的字符串)

/** * randomWord 产生任意长度随机字母数字组合 * @param randomFlag 是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位 * @param min * @param max * @returns {string} */ function randomWord(randomFlag, min, max){ var str = "", range = min, // 字母,数字 arr = ['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']; // 随机产生 if(randomFlag){ range = Math.round(Math.random() * (max-min)) min; } for(var i=0; i<range; i ){ pos = Math.round(Math.random() * (arr.length-1)); str = arr[pos]; } return str; } 调用方法 // 生成 3 - 32 位随即字符串 randomWord(true,3,32); // 例如:olyOXUF5oDsuMmXl3Mi48 // 生成 32 位随机字符串 randomWord(false,32); // 例如:fjpnWj29Bb8boiXbLeDF0nxkR4aYcLRl

第四种:不需要输入字符集合

function randomstring(L){ var s= ''; var randomchar=function(){ var n= Math.floor(Math.random()*62); if(n<10) return n; //1-10 if(n<36) return String.fromCharCode(n 55); //A-Z return String.fromCharCode(n 61); //a-z } while(s.length< L) s = randomchar(); return s; } // 调用方法 randomstring(5);

第五种:支持自定义字符长度和特征字符集合

function randomString(len, charSet) { charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var randomString = ''; for (var i = 0; i < len; i ) { var randomPoz = Math.floor(Math.random() * charSet.length); randomString = charSet.substring(randomPoz,randomPoz 1); } return randomString; } // 调用方法 var randomValue = randomString(5); var randomValue = randomString(5, 'PICKCHARSFROMTHISSET');

第六种:最轻量级的方式(代码轻,而不是CPU)

function rand(length, current) { current = current ? current : ''; return length ? rand(--length, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random() * 60)) current) : current; } console.log(rand(5));

第七种:在循环中使用它,它可能不是5个字符,但保证每个ID是唯一的

var newId ="randomid_" (Math.random() / new Date()).toString(36).replace(/[^a-z] /g, '');

,