JS实现的生成随机数的4个函数分享


Posted in Javascript onFebruary 11, 2015

第一种方法

/*

*@desc:生成随机字符串

*@remark:toString方法可以接收一个基数作为参数的原理,这个基数从2到36封顶。如果不指定,默认基数是10进制

*/

function generateRandomAlphaNum(len) {

    var rdmString = "";

    for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));

    return rdmString.substr(0, len);

}

第二种方法

//JS生成GUID函数,类似.net中的NewID(); 

function S4() {

    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);

}
function NewGuid() {

    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());

}

第三种方法

//JS生成GUID函数,类似.net中的NewID(); 

function newGuid() {

    var guid = "";

    for (var i = 1; i <= 32; i++) {

        var n = Math.floor(Math.random() * 16.0).toString(16);

        guid += n;

        if ((i == 8) || (i == 12) || (i == 16) || (i == 20))

            guid += "-";

    }

    return guid;

}

第四种方法

/*

*@desc:生成随机字符串

*@demo:console.log(ranStr());

*/

;(function(){

    //数字0-9,大写字母,小写字母,ASCII或UNICODE编码(十进制),共62个

    var charCodeIndex = [[48,57],[65,90],[97,122]];

    var charCodeArr = [];
    function getBetweenRound(min,max){

        return Math.floor(min+Math.random()*(max-min));

    };
    function getCharCode(){

        for(var i=0,len=3;i<len;i++){

            var thisArr = charCodeIndex[i];

            for(var j=thisArr[0],thisLen=thisArr[1];j<=thisLen;j++){

                charCodeArr.push(j);

            }

        }

    }
    function ranStr(slen){

        slen = slen || 20;

        charCodeArr.length<62 && getCharCode();
        var res = [];

        for(var i=0;i<slen;i++){

            var index = getBetweenRound(0,61);

            res.push(String.fromCharCode(charCodeArr[index]));

        }

        return res.join('');

    };
    this.ranStr = ranStr;

})();
Javascript 相关文章推荐
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
鼠标焦点离开文本框时验证的js代码
Jul 19 Javascript
网页运行时提示对象不支持abigimage属性或方法
Aug 10 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
微信小程序生成二维码的示例代码
Mar 29 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
jQuery操作元素追加内容示例
Jan 10 jQuery
原生JS实现拖拽功能
Dec 16 Javascript
JavaScript中的分号插入机制详细介绍
Feb 11 #Javascript
Javascript核心读书有感之语句
Feb 11 #Javascript
JavaScript数据结构和算法之二叉树详解
Feb 11 #Javascript
JavaScript中的函数模式详解
Feb 11 #Javascript
Javascript核心读书有感之表达式和运算符
Feb 11 #Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 #Javascript
Javascript核心读书有感之类型、值和变量
Feb 11 #Javascript
You might like
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
python list 合并连接字符串的方法
2013/03/09 Python
记录Django开发心得
2014/07/16 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
如何设置Java的运行环境
2013/04/05 面试题
高中生家长会演讲稿
2014/01/14 职场文书
公司证明怎么写
2014/09/22 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
python非标准时间的转换
2021/07/25 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
ICOM R71E和R72E图文对比解说
2022/04/07 无线电