生成具有特定模式的“串行”代码

时间:2013-09-21 23:11:11

标签: javascript jquery

所以我想要完成的是,例如,如果我有0000-0000-0000-0000,那么我希望只有例如第二个代码字母和/或我的特定字母可以将自己设置为预设,例如:2KS8-LMAO-8XG2-48SY。现在我有代码用我用html编写的随机字母/数字替换每个字符串。

function randomised(len) {
    return Math.floor(Math.random() * len);
}

function randomiseString(str){
    var charSet = "abcdefghijklmnopqrstuvwxyz0123456789";
    var str = str.replace(/[^-]/g,function() {
        var a = charSet[randomised(charSet.length)].toUpperCase();
        return a;
    });
    return str;
}

$('.combination').text(function(i,t){
    return randomiseString(t);
});

-

<b>Random Combination:</b> <span class="combination">0000-0000-0000-0000</span>

提前致谢。

1 个答案:

答案 0 :(得分:4)

您需要以某种方式传递您希望它匹配的模式。然后将str_replace分成多个部分。所以,如果你想要替换一个字符,你会使用一组字符,用一个字母就可以使用一组不同的字符。也许是这样的事情:

var chars = "abcdefghijklmnopqrstuvwxyz"
var nums = "0123456789"
str.replace(/[0-9]/g, function () {
    return nums[randomised(nums.length()];
}
str.replace(/[a-z]/g, function () {
    return chars[randomised(chars.length()].toUpperCase();
}

在这种情况下,无论str保持什么样的模式,您都可以定义模式。例如0000-aaaa-0000-aaaa每次运行脚本时,模式将保持不变(即4个数字,4个字母等)