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 相关文章推荐
键盘控制事件应用教程大全
Nov 24 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
js下用gb2312编码解码实现方法
Dec 31 Javascript
js复制到剪切板的实例方法
Jun 28 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
Oct 24 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
node版本管理工具n包使用教程详解
Nov 09 Javascript
vue2 拖动排序 vuedraggable组件的实现
Aug 08 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 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
德生PL990的分析评价
2021/03/02 无线电
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
windows下python安装小白入门教程
2018/09/18 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python如何将模块打包并发布
2020/08/30 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
经典c++面试题二
2015/08/14 面试题
自荐信格式范文
2013/10/07 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
音乐教师求职信范文
2015/03/20 职场文书
中标通知书格式
2015/04/17 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书