- 我们需要根据正则表达式去生成符合正则表达式的随机数
- 顺着这个思路可以去定义一些变量
- 先写一个验证随机数的方法
- 定义随机数的长度
- 看正则的要求/[A-Za-z0-9]{6},其中前缀是/ 后面是大小写字母和数字共六位数
- 我这里用了最笨的办法去定义了大小写字母和数字的数组,当然肯定有更好的办法
- 到这里,我们要去生成随机数,我定义了长度为6的循环
- 如果有更好的办法,烦请留言,不喜勿喷,谢谢!
上代码
function regx(r,s){//验证正则表达式是否对的方法 if (r == null || r == ""){ return false; } var patrn= new RegExp(r); if (patrn.exec(s)) return true return false } var codeLength = 6;//随机数的长度(与正则表达式中的{6}相对应) var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];//正则表达式的随机数 var code = "/";//随机数的前缀 var regxRule = "/[A-Za-z0-9]{6}";//需要验证的正则 //循环获取随机数 for(let i = 0;i<codeLength;i++){ var charIndex = Math.floor(Math.random()*chars.length); code+= chars [charIndex] } console.log(code); //验证生成的随机数是否正确 regx(regxRule,code); 复制代码
根据正则表达式生成随机数
最新推荐文章于 2022-04-03 09:12:24 发布