1

所以我想要完成的是,例如,如果我有 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>

提前致谢。

4

1 回答 1

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个字母等)

于 2013-09-21T23:22:10.643 回答