×

如何用JS实现随机字母数字字符串的功能

作者:Terry2019.08.09来源:Web前端之家浏览:8901评论:1
关键词:js随机生成

如何用JS实现随机字母数字字符串的功能,

方法一:Math.random()方法和Math.floor()方法

    ● 创建一个函数,该函数有两个参数,一个参数是我们想要生成的字符串的长度,另一个参数是我们想要在字符串中显示的字符。

    ● 声明新变量ans = ' '。

    ● 使用for循环以相反的顺序遍历字符串。

    ● 使用JavaScript的Math.random()方法生成随机字符串。

    ● 使用JavaScript的Math.floor()方法将其四舍五入并添加到ans中。

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
	</head>

	<body style="text-align:center;" id="body">
		<p id="UP" style="font-size: 19px; font-weight: bold;"></p>
		<button onClick="Fun()">点击这里</button>
		<p id="DOWN" style="color: green; font-size: 24px; font-weight: bold;"></p>
		<script>
			var up = document.getElementById('UP');
			var down = document.getElementById('DOWN');
			up.innerHTML =
				'单击按钮,生成随机字母数字字符串';

			function randomStr(len, arr) {
				var ans = '';
				for(var i = len; i > 0; i--) {
					ans +=
						arr[Math.floor(Math.random() * arr.length)];
				}
				return ans;
			}

			function Fun() {
				down.innerHTML = randomStr(20, '12345abcde');
			}
		</script>
	</body>
</html>

大家可以点击预览下:

image.png

方法二:Math.random()+toString()+slice()方法

● 首先使用Math.random()方法生成一个随机数。

● 使用JavaScript toString(36)将其转换为基数36(26个字符+ 0到9),这也是一个字母数字字符串。

● 使用JavaScript string.slice()方法获取从位置2开始的字符串部分。

示例:首先生成一个随机数(0-1),然后使用toString(36)方法将其转换为以36为基数的字符串,该字符串也是字母数字字符串。

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
	</head>

	<body style="text-align:center;" id="body">
		<p id="UP" style="font-size: 19px; font-weight: bold;"></p>
		<button onClick="GFG_Fun()">点击这里</button>
		<p id="DOWN" style="color: green; font-size: 24px; font-weight: bold;"></p>
		<script>
			var up = document.getElementById('UP');
			var down = document.getElementById('DOWN');
			up.innerHTML =
				'单击按钮,生成随机字母数字字符串';

			function GFG_Fun() {
				down.innerHTML =
					Math.random().toString(36).slice(2);
			}
		</script>
	</body>

</html>

效果看下:

image.png

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/jsyul2938uuoudfou.html

网友评论文明上网理性发言 已有1人参与

发表评论:

评论列表