javascript - 从一组允许的字符生成随机字符串的最佳方法是什么?
问题描述
我有一个非常简单的 javascript 程序,它涉及从给定的一组允许的字符生成随机字符串。
使用randexp.js从正则表达式生成随机字符串似乎是最合适的方法。但是,由于允许的字符集是一个非常简单的字符集(基本上都是英文字母表中的大写字符和所有数字),我想知道为此目的加载整个库是否有点矫枉过正。相反,我正在做类似以下的事情:
const chars = ["A", "B", "C", "D", ...];
let random = () => { return chars[Math.floor(Math.random() * chars.length)] };
这真的有什么不好的吗(除了有点笨重和尴尬)或者在这种特定情况下可以吗?从一组允许的字符生成随机字符串的最佳方法是什么?
解决方案
这可以说是randexp.js ( GitHub ) 的一个很好的用例,这是一个基于正则表达式模式生成随机字符串的 JavaScript 库。它非常强大,可以用于各种事情。
let randexp = new RandExp(/[A-D]{1,5}/);
for(i=0;i<3;i++)
console.log(randexp .gen());
//random numbers
console.log(new RandExp(/[1-6]/).gen());
//words with optional parts
console.log(new RandExp(/great|good( job)?|excellent/).gen());
//wildcard gen: eg. keys
console.log(new RandExp(/random stuff: .{8,20}/).gen());
<script src="https://github.com/fent/randexp.js/releases/download/v0.4.3/randexp.min.js"></script>
推荐阅读
- python - Python xpath解析返回内存本地化
- amazon-web-services - Cors - 如何处理需要自定义标头的预检选项请求?(AWS:使用 vpc 端点的私有 API 网关)
- java - 使用 MigLayout 将 JLabel 添加到 JPanel 时,类转换异常(java.lang.String 无法转换为 net.miginfocom.layout.CC)
- android - Android 的 AppCompatActivity.onMenuOpened 签名需要一个非空菜单,但收到一个空菜单,而不是
- javascript - 未调用nestjs异常过滤器
- android - Room:使用 fallbackToDestructiveMigrationFrom() 进行迁移如何工作?
- spring - Poller 任务执行器内存泄漏
- spring-mvc - 来自数据库的 JSP 中的下拉列表
- r - R调试()“找不到函数”,即使它存在
- matlab - 如何从 MATLAB 表中删除 NaN?