gpt4 book ai didi

javascript - 如何在 Javascript 中生成一串数字和字母?

转载 作者:行者123 更新时间:2023-11-30 08:01:00 28 4
gpt4 key购买 nike

我想使用 Javascript 以这种格式生成一行数字和字母。

示例:F35-HE4E-WAD-32S

所以一行 3-4-3-3 的随机数字和字母。

最佳答案

我会创建一个函数来生成匹配给定模板的随机序列。像这样:

function getSequence(template) {
var r = '', ch, n;
for (var i = 0; i < template.length; i++) {
ch = template.substr(i, 1);
if (ch == "d") {
r += parseInt(Math.random() * 10);
} else if (ch == "A") {
r += String.fromCharCode(65 + parseInt(Math.random() * 26));
} else if (ch == "w") {
n = parseInt(Math.random() * 36);
if (n > 9) {
r += String.fromCharCode(55 + n);
} else {
r += n;
}
} else {
r += ch;
}
}
return r;
}
console.log(getSequence('Add-wwww-AAA-ddA'));

http://jsfiddle.net/xpt9od7c/

在给定的示例中,“A”用于大写字母,“d”用于数字(数字),“w”用于两者。因此“Add-wwww”将返回一个序列,其中包含一个大写字母、两个数字、一个连字符,然后是四个可以是字母或数字的字符。然后,您可以根据需要的顺序进行调整。

编辑。也许一个更简洁、更可重用的实现是制作一个函数,将模板字符转换为从相应字符集中挑选的随机字符,然后调用 Array.map 将该函数应用于模板的每个字符字符串。

var CHAR_SETS = {
d: '0123456789',
A: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
w: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
};

function mapString(s, func) {
return Array.prototype.map.call(s, func).join('')
}

function randChar(charType) {
var chars = CHAR_SETS[charType];
if (chars) {
return chars.charAt(parseInt(Math.random() * chars.length));
} else {
return charType;
}
}

console.log(mapString('Add-wwww-AAA-ddA', randChar));

http://jsfiddle.net/49hofey8/2/

另一种选择是使用replace:

var CHAR_SETS = {
d: '0123456789',
A: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
w: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
};

function randChar(charType) {
var chars = CHAR_SETS[charType];
return chars.charAt(parseInt(Math.random() * chars.length));
}
console.log('Add-wwww-AAA-ddA'.replace(/[Adw]/g, randChar));

http://jsfiddle.net/so3pf271/1/

关于javascript - 如何在 Javascript 中生成一串数字和字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440684/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com