利用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 相关文章推荐
常用js脚本
Dec 03 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
Prototype源码浅析 Number部分
Jan 16 Javascript
JavaScript检测原始值、引用值、属性
Jun 20 Javascript
jQuery获取浏览器类型和版本号的方法
Jul 05 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
Aug 06 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
ES6中定义类和对象的方法示例
Jul 31 Javascript
vue设置导航栏、侧边栏为公共页面的例子
Nov 01 Javascript
vue prop属性传值与传引用示例
Nov 13 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 at(@)符号的用法简介
2009/07/11 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
Node.js之readline模块的使用详解
2019/03/25 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
python config文件的读写操作示例
2019/09/27 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
大一学生个人总结
2015/02/15 职场文书
公司新员工欢迎词
2015/09/30 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书