利用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 相关文章推荐
JavaScript 常用函数
Dec 30 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
详解AngularJS中自定义指令的使用
Jun 17 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
May 08 Javascript
JavaScript实现简单评论功能
Aug 17 Javascript
Angular 容器部署的方法
Apr 17 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 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实现mysql数据库备份类
2008/03/20 PHP
PHP 递归效率分析
2009/11/24 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
javascript globalStorage类代码
2009/06/04 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
2014年材料员工作总结
2014/11/19 职场文书
同学聚会邀请函
2015/01/30 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript