Javascript 生成序列号

Javascript 生成序列号,javascript,Javascript,我的代码有问题: 函数makeid(长度){ var结果=[]; 变量字符='ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789'; var charactersLength=characters.length; 对于(变量i=0;i

我的代码有问题:

函数makeid(长度){
var结果=[];
变量字符='ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789';
var charactersLength=characters.length;
对于(变量i=0;i
我的结果是:
ZXUJVOAJDH2BIAVXZA

但是我的结果应该是这样的:
ZXUJVO-AJDH2B-IAVXZA

谁能帮我解决这个问题

return result.join('').match(new RegExp('.{1,6}', 'g')).join("-")

.match(新的RegExp('.{1,6}',g'))
-将字符串拆分为一个1到6个字符的数组

您可以传入另一个名为
segments
的参数,该参数对您的ID进行分区

const characters='abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzo123456789';
函数makeid(长度,段=0){
常数
结果=[],
charLen=characters.length,
分段长度=数学楼层(长度/分段);
for(设i=0;i
改变你的周期:

    let char = ``;
    for (var i = 0; i < length; i++) {
        char += characters.charAt(Math.floor(Math.random() * charactersLength))
        if (i % 6 === 0) {
            char += '-';
        }
        result.push(char);
    }

let char=``;
对于(变量i=0;i
您的代码循环执行
长度
次,并附加随机字符。根据当前循环计数,您需要在循环中的不同点添加偶尔的
-
,对吗?还要记住,您已经指定了
length
作为参数,并且您的
-
的位置可能需要根据
length
的值进行更改。是的,每6个字符正确一次,这就是我所暗示的。如何实际编码这取决于您,但是-我建议您尝试一下,根据循环中的循环计数做一些事情,然后如果您有特定问题,请包括这些详细信息
长度
有最小长度条件吗?如果长度是4呢?或者如果它是一个奇数?你这样做只是为了学习还是在代码中使用它?因为也许更好的办法是看看这似乎是一个初学者提出的问题。不确定正则表达式的方法是最谨慎的,因为看起来他们实际上只是在学习使用核心字符串概念…@DavidMakogon是的,我同意,但有时知道你有什么选择也是很好的。是的,我是初学者(:是的,知道了,谢谢,伙计