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 相关文章推荐
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
JavaScript 数组详解
Oct 10 Javascript
Angular 应用技巧总结
Sep 14 Javascript
微信浏览器禁止页面下拉查看网址实例详解
Jun 28 Javascript
基于JavaScript实现幸运抽奖页面
Jul 05 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
vue中axios实现数据交互与跨域问题
May 12 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
jQuery+ajax实现文件上传功能
Dec 22 jQuery
浅析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 curl模拟浏览器抓取网站信息
2013/10/28 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
Laravel 队列使用的实现
2019/01/08 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
DWZ table的原生分页浅谈
2013/03/01 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
ORACLE十问
2015/04/20 面试题
亲子拓展活动方案
2014/02/20 职场文书
优秀员工事迹材料
2014/12/20 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
python 离散点图画法的实现
2022/04/01 Python