如何让随机字母数字字符串生成器随机生成5位或7位字符?
实现随机生成5位或7位的混合字符串
给你两种简单的实现方式,不用复杂改动:
方法一:不修改原函数,调用时随机传长度
直接在调用前先随机确定长度,再传给原函数:
// 随机选择5或7作为生成长度(两种概率各50%) var randomLength = Math.random() < 0.5 ? 5 : 7; // 调用原函数生成对应长度的随机字符串 var randStr = randomString(randomLength);
原理:Math.random()会生成0到1之间的随机小数,当数值小于0.5时选用5位,否则用7位,两种长度的出现概率均等。
方法二:修改原函数,支持默认随机长度
如果想让函数自己处理随机逻辑,不用每次调用都写判断,可以给函数添加默认参数逻辑:
function randomString(string_length) { // 若未传入长度参数,自动随机选择5或7 string_length = string_length || (Math.random() < 0.5 ? 5 : 7); var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var output = ""; var index; for (var i = 0; i < string_length; i++) { var index = Math.floor(Math.random() * chars.length); output += chars.substring(index, index + 1); } document.getElementById("current").innerHTML = output; return output; }
修改后调用更灵活:
- 要固定长度:
randomString(5)或randomString(7) - 要随机长度:直接调用
randomString()
内容的提问来源于stack exchange,提问作者FoxOrd
相关产品推荐
相关产品推荐

