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 相关文章推荐
jquery实现图片灯箱明暗的遮罩效果
Nov 15 Javascript
javascript对JSON数据排序的3个例子
Apr 12 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
Vue.js第二天学习笔记(vue-router)
Dec 01 Javascript
javascript实现的图片预览功能
Mar 25 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
Vue.js 十五分钟入门图文教程
Sep 12 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
Oct 19 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
d3.js实现图形拖拽
Dec 19 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连接SQLServer2005方法及代码
2013/12/26 PHP
php中cookie的使用方法
2014/03/29 PHP
javascript demo 基本技巧
2009/12/18 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
JS实现滑动插件
2020/01/15 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
web字体加载方案优化小结
2019/11/29 HTML / CSS
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
校园公益广告语
2014/03/13 职场文书
汽车维修求职信
2014/06/15 职场文书
物业管理专业自荐信
2014/07/01 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python