随机数很简单,字母加数字也很简单,但是特殊的字母+数字就是个别字母和数字不需要,害怕混淆。比如Z和2
最终效果是:两个数字加四个字母 做法是: 先随机两个数字,再随机四个字母,两者拼接成一个字符串。最后把该字符串打乱重新随机组合该字符串
用前端js写的:
random: function (num) { var size1= '356789';
var size2 = 'ABCDEFGHJKMNPQRSTUVWXY';
var size3=['1','2','3','4','5','6']; var result=''; var res=[]; var lenReg=[]; for(var i=0;i<2;i++){ result += size1.split('')[parseInt(Math.random()*6)]; } for(var j=0;j<4;j++){ result += size2.split('')[parseInt(Math.random()*22)]; } for(var k=0;k<num;k++){ var len=size3.length-1; var index =parseInt(Math.random()*len); lenReg[k]= size3[index]; size3.splice(index,1) res[lenReg[k]-1]=result.split('')[k] } res=res.join(''); return res; }
用后端Java写的
public static String getRandomCode() { String number = "356789"; String letter = "ABCDEFGHJKMNPQRSTUVWXY"; Random rand = new Random(); StringBuffer flag = new StringBuffer(); for (int i = 0; i < 2; i++) { flag.append(number.charAt(rand.nextInt(6)) + ""); } for (int j = 0; j < 4; j++) { flag.append(letter.charAt(rand.nextInt(22)) + ""); } char[] chars = flag.toString().toCharArray(); List<Character> list = new ArrayList<>(); for (int k = 0; k < chars.length; k++) { list.add(chars[k]); } Collections.shuffle(list); return StringUtils.join(list, ""); }