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 相关文章推荐
javascript 年月日联动实现核心代码
Dec 21 Javascript
ext jquery 简单比较
Apr 07 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
正负小数点后两位浮点数实现原理及代码
Sep 06 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
vue click.stop阻止点击事件继续传播的方法
Sep 04 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
vue输入框使用模糊搜索功能的实现代码
May 26 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
Sep 22 Javascript
Vue中computed和watch有哪些区别
Dec 19 Vue.js
浅析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模块 Memcached功能多于Memcache
2011/06/14 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
angularjs $http调用接口的方式详解
2018/08/13 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python笔记(2)
2012/10/24 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
python实现随机漫步方法和原理
2019/06/10 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
大学生个人事迹材料
2014/01/21 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
运动会方阵解说词
2014/02/12 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
高中运动会前导词
2015/07/20 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
实战Python爬虫爬取酷我音乐
2022/04/11 Python