JavaScript生成随机数的4种自定义函数分享


Posted in Javascript onFebruary 28, 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 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
通过$(this)使用jQuery包装后的方法或属性
May 18 Javascript
Jquery节点遍历next与nextAll方法使用示例
Jul 22 Javascript
JavaScript插件化开发教程 (一)
Jan 27 Javascript
基于jquery实现的自动补全功能
Mar 12 Javascript
jQuery使用drag效果实现自由拖拽div
Jun 11 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
React学习笔记之条件渲染(一)
Jul 02 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
详解jQuery-each()方法
Mar 13 jQuery
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 Javascript
浅析JavaScript事件和方法
Feb 28 #Javascript
常用的JavaScript WEB操作方法分享
Feb 28 #Javascript
js实现点击图片改变页面背景图的方法
Feb 28 #Javascript
本人自用的global.js库源码分享
Feb 28 #Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 #Javascript
javascript计时器详解
Feb 28 #Javascript
Lab.js初次使用笔记
Feb 28 #Javascript
You might like
一个简单且很好用的php分页类
2013/10/26 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
python if not in 多条件判断代码
2016/09/21 Python
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
python三引号输出方法
2019/02/27 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
财务会计实习报告体会
2013/12/20 职场文书
教师自我反思材料
2014/02/14 职场文书
乱世佳人观后感
2015/06/08 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python