利用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 相关文章推荐
CSS+JS构建的图片查看器
Jul 22 Javascript
validator验证控件使用代码
Nov 23 Javascript
JS中for循序中延迟加载动态效果的具体实现
Aug 18 Javascript
javascript实现动态侧边栏代码
Feb 19 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 Javascript
详解VUE的状态控制与延时加载刷新
Mar 27 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
Angular 封装并发布组件的方法示例
Apr 19 Javascript
微信小程序的部署方法步骤
Sep 04 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
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操作数组的一些函数整理介绍
2011/07/17 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
Visual Studio中js调试的方法图解
2014/06/30 Javascript
浅析javascript 定时器
2014/12/23 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
Javascript缓存API
2016/06/14 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
js实现右键菜单功能
2016/11/28 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
python SVM 线性分类模型的实现
2019/07/19 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
如何使用repr调试python程序
2020/02/28 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
求职自荐信格式
2013/12/04 职场文书
党员评议个人总结
2014/10/20 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server