Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中生成一串数字和字母?_Javascript - Fatal编程技术网

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

如何在Javascript中生成一串数字和字母?,javascript,Javascript,我想使用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);

我想使用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'));
var sValidCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sCharCode = "";

for (i = 0; i < 13; i++) {
    sCharCode = sCharCode + sValidCharacters.charAt(parseInt(Math.random() * sValidCharacters.length));

    if ((i === 2) || (i === 6) || (i === 9)) {
        sCharCode = sCharCode + "-";
    }
}

console.log(sCharCode);
var charGroup = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var length = 13;
var divider = "-";
var dividerLocations = [3, 7, 10]; // the numbers indicate which character to place the divider after

var generatedCode = generateCode(charGroup, length, divider, dividerLocations);

另一个选项是使用
替换

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));

我将创建一个函数,生成与给定模板匹配的随机序列。大概是这样的:

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'));
var sValidCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sCharCode = "";

for (i = 0; i < 13; i++) {
    sCharCode = sCharCode + sValidCharacters.charAt(parseInt(Math.random() * sValidCharacters.length));

    if ((i === 2) || (i === 6) || (i === 9)) {
        sCharCode = sCharCode + "-";
    }
}

console.log(sCharCode);
var charGroup = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var length = 13;
var divider = "-";
var dividerLocations = [3, 7, 10]; // the numbers indicate which character to place the divider after

var generatedCode = generateCode(charGroup, length, divider, dividerLocations);

另一个选项是使用
替换

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));

我会使用更通用的方法。然后,您可以将函数重新用于其他代码目的

Number.MAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER | 9007199254740991;
Number.MIN_SAFE_INTEGER=Number.MIN_SAFE_INTEGER | |-Number.MAX_SAFE_INTEGER;
Number.toInteger=Number.toInteger | |函数(inputArg){
变量编号=+inputArg,
val=0;
如果(数字===数字){
如果(!number | | number===无穷大| | number====无穷大){
val=数字;
}否则{
val=(数字>0 | |-1)*数学地板(数学abs(数字));
}
}
返回val;
};
函数clapsFaint(编号){
返回Math.min(Math.max(Number.toInteger(Number)、Number.min\u SAFE\u INTEGER)、Number.max\u SAFE\u INTEGER);
}
Array.isArray=Array.isArray | |函数(inputArg){
返回{}.toString.call(inputArg)='[object Array]';
}
函数isString(inputArg){
返回{}.toString.call(inputArg)='[对象字符串]';
}
函数生成器CARS(第一个、最后一个){
first=isString(first)和&first.length?first.charCodeAt(0):0;
last=isString(last)和&last.length?last.charCodeAt(0):0;
var chars=[],
指数
对于(索引=第一个;索引最大值){
tmp=min;
最小值=最大值;
max=tmp;
}
tmp=最大值-最小值+1;
if(tmp>Number.MAX\u SAFE\u整数){
抛出新的RangeError('最大值和最小值之差大于Number.max\u SAFE\u整数:'+tmp);
}否则{
val=数学地板(数学随机()*tmp)+min;
}
返回val;
}
函数stringFromPool(ary,数量){
var-str='';
if(Array.isArray(ary)){
对于(索引=0,数量=Number.toInteger(数量);索引<数量;索引+=1){
str+=ary[randomInt(ary.length-1)];
}
}
返回str;
}
var getSequence=(函数(){
var lower=发电机卡('a','z'),
上限=发电机轴('A','Z'),
数字=发电机卡('0','9'),
lowerDigit=更低的concat(数字),
upperDigit=upper.concat(数字),
全部=较低的concat(较高的数字);
返回函数(模板){
var str='',
指数
长度,
chr;
if(isString(模板)和模板长度){
对于(索引=0,长度=template.length;索引
生成

我会使用更通用的方法。然后,您可以将函数重新用于其他代码目的

Number.MAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER | 9007199254740991;
Number.MIN_SAFE_INTEGER=Number.MIN_SAFE_INTEGER | |-Number.MAX_SAFE_INTEGER;
Number.toInteger=Number.toInteger | |函数(inputArg){
变量编号=+inputArg,
val=0;
如果(数字===数字){
如果(!number | | number===无穷大| | number====无穷大){
val=数字;
}否则{
val=(数字>0 | |-1)*数学地板(数学abs(数字));
}
}
返回val;
};
函数clapsFaint(编号){
返回Math.min(Math.max(Number.toInteger(Number)、Number.min\u SAFE\u INTEGER)、Number.max\u SAFE\u INTEGER);
}
Array.isArray=Array.isArray | |函数(inputArg){
返回{}.toString.call(inputArg)='[object Array]';
}
函数isString(inputArg){
返回{}.toString.call(inputArg)='[对象字符串]';
}
函数生成器CARS(第一个、最后一个){
first=isString(first)和&first.length?first.charCodeAt(0):0;
last=isString(last)和&last.length?last.charCodeAt(0):0;
var chars=[],
指数
对于(索引=第一个;索引最大值){
tmp=min;
最小值=最大值;
max=tmp;
}
tmp=最大值-最小值+1;
if(tmp>Number.MAX\u SAFE\u整数){
抛出新的RangeError('最大值和最小值之差大于Number.max\u SAFE\u整数:'+tmp);
}否则{
val=数学地板(数学随机()*tmp)+min;
}
返回val;
}
函数stringFromPool(ary,数量){
var-str='';
if(Array.isArray(ary)){
对于(索引=0,数量=Number.toInteger(数量);索引<数量;索引+=1){
str+=ary[randomInt(ary.length-1)];
}
}
返回str;
}
var getSequence=(函数(){
var lower=发电机卡('a','z'),
上限=发电机轴('A','Z'),
数字=发电机卡('0','9'),
lowerDigit=更低的concat(数字),
upperDigit=upper.concat(数字),
全部=较低的concat(较高的数字);
返回函数(模板){
var str='',
指数
长度,
chr;
235.232.608.74
125.227.649.68
983.678.369.71
605.708.890.97
537.554.201.23
var charGroup = "!@#$%^&*()?";
var length = 4;
var divider = "";
var dividerLocations = [];
@%$%
)?$&
*&(!
!^@)
*))#