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是的,我同意,但有时知道你有什么选择也是很好的。是的,我是初学者(:是的,知道了,谢谢,伙计