我使用javascript生成随机的20位数字。我需要附加在每5位数字后,使类似序列号格式,如给出的例子
例如DF347-VB895-98AP8-34NQ2
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 20;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
document.write(randomstring);
}<body onload="randomString();">
发布于 2014-12-28 00:07:15
只需每5次迭代添加一个连字符:
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 20;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
if (i !== 0 && i%5 === 0) {
randomstring += '-';
}
randomstring += chars.substring(rnum,rnum+1);
}
document.write(randomstring);
}<body onload="randomString();">
发布于 2014-12-28 00:07:43
使用match将其分解为多个片段,使用join使用连字符重新构建它,如下所示:
var randomstring = 'DF347VB89598AP834NQ2',
withHyphens = randomstring
.match(/.{5}/g) // breaks it into 5-character strings
.join('-'); // rebuilds it with hyphen separators
alert(withHyphens); // DF347-VB895-98AP8-34NQ2或者,正如Hunter McMillen建议的那样,由于您是在动态构建字符串,因此只需在循环中每第5次添加一个连字符。
您还在回答中指出(附注:这应该是对您的问题的编辑,而不是编辑),您需要附加-XXXXX。只需执行上面的一种方法,然后
withHyphens += '-XXXXX';发布于 2014-12-28 00:09:20
使用正则表达式替换:
randomstring = randomstring.replace(/.{5}(?!$)/g, '$&-');负向前视(?!$)防止它在末尾添加连字符。
https://stackoverflow.com/questions/27668949
复制相似问题