本文介绍在 JavaScript 中生成随机字母数字组合字符串的多种方法。涵盖利用 toString 进制转换的奇巧写法,以及通过数组遍历生成的通用函数 randomWord。同时包含随机数字动画效果的实现代码,并详细解析 Math.random、Math.floor 等核心函数的取值范围与使用场景,提供完整代码示例供开发者参考。
随机数字动画效果实现
JavaScript 实现随机动画以生成一组随机数字。

支持在线预览及文件下载。
功能效果说明如下:
压缩包内仅包含一个有效的 index.html 文件。
该文件内部整合了 CSS 样式与 HTML 结构代码。
利用纯 JavaScript 代码生成若干随机数字。
每次生成的结果均不重复,点击按钮后可触发切换效果。
具体使用步骤如下:
首先,将 CSS 样式引入到目标网页中。
其次,将 body 标签内的相关代码片段复制并粘贴至需要展示的位置。
JavaScript 生成随机字母数字字符串方法
本节重点讲解如何使用 JavaScript 生成由字母和数字混合组成的随机字符串。
背景介绍
近期遇到一个开发需求,要求生成长度在 3 到 32 位之间的随机字母数字组合字符串,此外还需要生成固定 43 位的随机字符串。
实现方案一
一种较为巧妙的实现方式
Math.random().toString(36).substr(2);
代码运行输出结果

原理原理解析
这种方式颇具趣味性,经研究可知,Number.toString() 方法的参数可以是 2 到 36 之间的任意整数。若省略该参数,默认值为 10(即十进制),此时返回值即为该随机数本身。
当参数为偶数时,返回的字符串较短;若参数为奇数,则返回较长长度的数值表示。若参数小于 10,结果仅由数字组成;只有当参数大于 10 时,结果才会包含字母。因此,若要生成包含字母的长随机字符串,需使用大于 10 且为奇数的参数,并根据所需长度使用 slice(2, n) 方法进行截取。
实现方案二
此方案存在多种实现路径。由于上述第一种写法不完全符合特定需求,因此提供了第二种实现方式,欢迎提出修改建议。
参考地址
https://gist.github.com/xuanfeng/b23ab28ab412254e1594
核心代码实现
/*
** randomWord 产生任意长度随机字母数字组合
** randomFlag-是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位
** xuanfeng 2014-08-28
*/
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)
生成 43 位随机字符串:randomWord(false, 43)

JavaScript 随机数函数详解
JavaScript 中产生随机数的几种常见用法
<script>
function GetRandomNum(Min,Max)
{
var Range = Max - Min;
var Rand = Math.random();
return(Min + Math.round(Rand * Range));
}
var num = GetRandomNum(1,10);
alert(num);
</script>
var chars = ['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'];
function generateMixed(n) {
var res = "";
for(var i = 0; i < n ; i ++) {
var id = Math.ceil(Math.random()*35);
res += chars[id];
}
return res;
}
1. Math.random(); 返回 0 到 1 之间的一个随机数(包含 0,不包含 1)。
2. Math.floor(num); 参数 num 为数值,函数返回 num 的整数部分(向下取整)。
3. Math.round(num); 参数 num 为数值,函数返回 num 四舍五入后的整数。
Math 对象提供了一系列用于数学计算的属性和方法。
Math.random(); 返回 0 和 1 之间的一个随机数(包含 0,不包含 1)。
Math.ceil(n); 返回大于或等于 n 的最小整数(向上取整)。
使用 Math.ceil(Math.random()*10); 时,主要获取 1 到 10 的随机整数,此时获取 0 的概率极低。
Math.round(n); 返回 n 四舍五入后的整数值。
使用 Math.round(Math.random()); 可均衡地获取 0 到 1 的随机整数。
使用 Math.round(Math.random()*10); 时,可基本均衡地获取 0 到 10 的随机整数,但获取最小值 0 和最大值 10 的概率各减少一半。
Math.floor(n); 返回小于或等于 n 的最大整数(向下取整)。
使用 Math.floor(Math.random()*10); 时,可均衡地获取 0 到 9 的随机整数。
本文分享了 JavaScript 生成随机数的相关内容,欲了解更多有关 JS 随机数的问题,请持续关注本网站,我们将每日更新新内容。