flash下随机生成中文和字符
2014-12-15 15:42
211 查看
protected var _str1:String,_str2:String,_str3:String,_str4:String; <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>//获取一个随机的范围整数值 <span style="white-space:pre"> </span>protected function integer(value:Number):int <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>return Math.floor(number(value)); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>//获取一个随机的范围Number值 <span style="white-space:pre"> </span>protected function number(value:Number):Number <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>return Math.random() * value; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>protected function randomRange(restrictList:Array):Number <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var list:Array = new Array(); <span style="white-space:pre"> </span>var length:int = restrictList.length; <span style="white-space:pre"> </span>if (length % 2 != 0 || length == 0) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>throw new Error("参数错误!无法获取指定范围!"); <span style="white-space:pre"> </span>}//将所有可能出现的随机数存入数组,然后进行随机 <span style="white-space:pre"> </span>for (var i:int = 0; i < length / 2; i ++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var begin:int = restrictList[i * 2]; <span style="white-space:pre"> </span>var end:int = restrictList[i * 2 + 1]; <span style="white-space:pre"> </span>if (begin > end) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var value:Number = begin; <span style="white-space:pre"> </span>begin = end; <span style="white-space:pre"> </span>end = value; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>for (begin; begin < end; begin ++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>list.push(begin); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>var result:Number = list[integer(list.length)]; <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>restrictList = null;<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>list = null; <span style="white-space:pre"> </span>return result; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>protected function explain(restrict:String,isCodeAt:Boolean = true):Array <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var result:Array = new Array ; <span style="white-space:pre"> </span>var restrictList:Array = restrict.split(","); <span style="white-space:pre"> </span>var length:uint = restrictList.length; <span style="white-space:pre"> </span>for (var i:int = 0; i < length; i ++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var list:Array = restrictList[i].split("-"); <span style="white-space:pre"> </span>if (list.length == 2) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var begin:String = list[0]; <span style="white-space:pre"> </span>var end:String = list[1]; <span style="white-space:pre"> </span>if (isCodeAt) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>begin = begin.charCodeAt().toString(); <span style="white-space:pre"> </span>end = end.charCodeAt().toString(); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>//此处如果不加1,将不会随机ar[1]所表示字符,因此需要加上1,随机范围才是对的 <span style="white-space:pre"> </span>result.push(Number(begin),Number(end) + 1); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>else if (list.length == 1) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var value:String = list[0]; <span style="white-space:pre"> </span>if (isCodeAt) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>value = value.charCodeAt().toString(); <span style="white-space:pre"> </span>}//如果范围是1-2,那么整型随机必定是1,因此拿出第一个参数后,把范围定在参数+1,则就是让该参数参加随机 <span style="white-space:pre"> </span>result.push(Number(value),Number(value) + 1); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>list = null; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>restrictList = null; <span style="white-space:pre"> </span>return result; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>protected function getChinese(length:int):String <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>var rez:String = ""; <span style="white-space:pre"> </span>for (var i:int = 0; i < length; i++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>_str1 = String.fromCharCode(randomRange(explain("B-F"))); <span style="white-space:pre"> </span>if (_str1 == "F") <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>_str2 = String.fromCharCode(randomRange(explain("0-7"))); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>else <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>_str2 = String.fromCharCode(randomRange(explain("0-9,A-F"))); <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>_str3 = String.fromCharCode(randomRange(explain("A-F"))); <span style="white-space:pre"> </span>switch (_str3) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>case "A" : <span style="white-space:pre"> </span>_str4 = String.fromCharCode(randomRange(explain("1-9,A-F"))); <span style="white-space:pre"> </span>break; <span style="white-space:pre"> </span>case "F" : <span style="white-space:pre"> </span>_str4 = String.fromCharCode(randomRange(explain("0-9,A-E"))); <span style="white-space:pre"> </span>break; <span style="white-space:pre"> </span>default : <span style="white-space:pre"> </span>_str4 = String.fromCharCode(randomRange(explain("0-9,A-F"))); <span style="white-space:pre"> </span>break; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>var _str:String = "0x" + _str1 + _str2 + _str3 + _str4; <span style="white-space:pre"> </span>var byteArr1:ByteArray = new ByteArray(); <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>byteArr1.writeShort(parseInt(_str,16)); <span style="white-space:pre"> </span>byteArr1.position = 0; <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>rez += byteArr1.readMultiByte(2,"gb2312"); <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>byteArr1 = null; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>return rez; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>private function GenerateCheckCode(length:int):String <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>//init <span style="white-space:pre"> </span>var ran:Number; <span style="white-space:pre"> </span>var number:Number; <span style="white-space:pre"> </span>var code:String; <span style="white-space:pre"> </span>var checkCode:String =""; <span style="white-space:pre"> </span>for(var i:int=0; i<length; i++) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>ran=Math.random(); <span style="white-space:pre"> </span>number =Math.round(ran*10000); //get result like 0.1234 <span style="white-space:pre"> </span>if(number % 2 == 0) <span style="white-space:pre"> </span>code = String.fromCharCode(48+(number % 10)); //0's ASCII code is 48 <span style="white-space:pre"> </span>else <span style="white-space:pre"> </span>code = String.fromCharCode(65+(number % 26)) ; // A's ASCII code is 65 <span style="white-space:pre"> </span>checkCode += code; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>return checkCode; <span style="white-space:pre"> </span>}
使用方法如下:
var bb:String = getChinese(100) + GenerateCheckCode(100);
trace(bb);
相关文章推荐
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
- 关于C++随机生成中文字符
- 利用python3随机生成中文字符的实现方法
- 随机生成一段包含固定字符的中文
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 随机生成n个字符的vbscript函数
- 用C#生成随机中文汉字验证码的基本原理
- 随机生成中文姓名的脚本
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- C#生成随机中文汉字验证码
- 生成中文随机验证码
- 用C#生成随机中文汉字验证码的基本原理
- 随机生成字符串
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理
- 用C#生成随机中文汉字验证码的基本原理