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代码(jquery)
Sep 12 Javascript
JQuery教学之性能优化
May 14 Javascript
Angular Js文件上传之form-data
Aug 28 Javascript
通过设置CSS中的position属性来固定层的位置
Dec 14 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
对javascript继承的理解
Oct 11 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
基于vue2.0+vuex的日期选择组件功能实现
Mar 13 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 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
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
浅谈django中的认证与登录
2016/10/31 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
pycharm + django跨域无提示的解决方法
2020/12/06 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
德国高性价比网上药店:medpex
2017/07/09 全球购物
法学专业个人求职信
2013/09/26 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
股权转让协议书范本
2014/04/12 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
2014年营业员工作总结
2014/11/18 职场文书
个人总结与自我评价
2015/02/14 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
贷款收入证明范本
2015/06/12 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python