javascript - 生成具有特定模式的 "serial"代码

标签 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>

提前致谢。

最佳答案

您需要以某种方式传入您希望它匹配的模式。然后将您的 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 个字母等)

关于javascript - 生成具有特定模式的 "serial"代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938634/

相关文章:

javascript - 铁 meteor 的路线不会触发模板的渲染事件

javascript - "download"而不是 "open"一个文本文件

jquery - $ ("input:checked").length 在浏览器历史记录中返回后在 Opera 中不起作用

javascript - 向大型 DOM 添加类时的性能问题

jquery - 在 Backbone View 的事件哈希中使用自定义 jquery 插件

javascript - 数组值未传递给插件

javascript - Lodash _.filter 函数只能满足一个条件

javascript - node.js 向客户端发送数据?

javascript - 我如何在 jQuery 中获取类的值?

javascript - 如果文本为空,如何隐藏表格单元格