利用javascript如何随机生成一定位数的密码


Posted in Javascript onSeptember 22, 2017

前言

本文主要给大家介绍了关于利用javascript随机生成一定位数密码的相关内容,分享出来供大家参考学习,下面话不多少,来一起看看详细的介绍吧。

需求

随机生成一定位数的密码,有最小个数和最大个数,必须包含数字、大小写字母,和特殊字符比如(- _ #);

代码

function createPassword(min,max) {
 //可以生成随机密码的相关数组
 var num = ["0","1","2","3","4","5","6","7","8","9"];
 var english = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
 var ENGLISH = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
 var special = ["-","_","#"];
 var config = num.concat(english).concat(ENGLISH).concat(special);

 //先放入一个必须存在的
 var arr = [];
 arr.push(getOne(num));
 arr.push(getOne(english));
 arr.push(getOne(ENGLISH));
 arr.push(getOne(special));

 //获取需要生成的长度
 var len = min + Math.floor(Math.random()*(max-min+1));

 for(var i=4; i<len; i++){
  //从数组里面抽出一个
  arr.push(config[Math.floor(Math.random()*config.length)]);
 }

 //乱序
 var newArr = [];
 for(var j=0; j<len; j++){
  newArr.push(arr.splice(Math.random()*arr.length,1)[0]);
 }

 //随机从数组中抽出一个数值
 function getOne(arr) {
  return arr[Math.floor(Math.random()*arr.length)];
 }

 return newArr.join("");
 }

使用

传入一个生成的密码的最小位数,和最大位数,即可返回一个随机密码

console.log(createPassword(8,15));

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
div层的移动及性能优化
Nov 16 Javascript
jquery获得option的值和对option进行操作
Dec 13 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
Aug 01 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
vue数据双向绑定的注意点
Jun 23 Javascript
基于滚动条位置判断的简单实例
Dec 14 Javascript
vue.js的computed,filter,get,set的用法及区别详解
Mar 08 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 #Javascript
Vee-Validate的使用方法详解
Sep 22 #Javascript
Js中async/await的执行顺序详解
Sep 22 #Javascript
Node.js自定义实现文件路由功能
Sep 22 #Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 #Javascript
javascript计算渐变颜色的实例
Sep 22 #Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 #Javascript
You might like
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python如何实现内容写在图片上
2018/03/23 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
网游商务专员求职信
2013/10/15 职场文书
成教毕业生自我鉴定
2013/10/23 职场文书
英文简历中的自荐信范文
2013/12/14 职场文书