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 相关文章推荐
js切换光标示例代码
Oct 10 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
Jun 26 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
Dec 04 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
js制作支付倒计时页面
Oct 21 Javascript
微信小程序获取循环元素id以及wx.login登录操作
Aug 17 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
Vue.js实现立体计算器
Feb 22 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
PHP注释实例技巧
2008/10/03 PHP
php 页面执行时间计算代码
2008/12/04 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php构造函数的继承方法
2015/02/09 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
2017/11/06 PHP
PHP时间函数使用详解
2019/03/21 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
js date 格式化
2017/02/15 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
基于python编写的微博应用
2014/10/17 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
大学生党员自我剖析材料
2014/10/06 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
python中的被动信息搜集
2021/04/29 Python