随机数很简单,字母加数字也很简单,但是特殊的字母+数字就是个别字母和数字不需要,害怕混淆。比如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, "");
}