一行代码,创建可以生成随机密码的输入框

一、优势

        1、只需传入几个参数即可
        2、密码可以自己设置长度、有无特殊字符、有无数字、大小写字母

二、源码

        main.js
class generatePassword{
    /**
     * @param {Boolean} lower-是否有小写字母
     * @param {Boolean} upper-是否有大写字母
     * @param {Boolean} number-是否有数子
     * @param {Boolean} symbol-是否有特殊字符
     * @param {Number} length-密码长度
     * @param {Element} input_dom -输入框元素
     * @param {Object} -配置
     ***/
      constructor(lower,upper,number,symbol,length,input_dom,{lostr_tim,lostr_type,sever_time}){//sever_time储存时长
        this.lower=lower
        this.upper=upper
        this.number=number
        this.symbol=symbol
        this.length=length
        this.input_dom=input_dom
        this.paswod=''
      }
    init(){this.handler()}
    handler(){
    let paswod_arr=[]
    let str_arr=''
    let a='abcdefghigkmnlopqrstuvwxyz'
    let A='ABCDEFGHIJKMNLOPQRSTUVWXYZ'
    let te='!@#$%^&*(){}[]=<>/,.'
    let num='1234567890'
    let chek=[]
    if( this.lower){str_arr+=a
      chek.push(/[a-z]/)}
    if(this.upper){str_arr+=A
      chek.push(/[A-Z]/)}
    if(this.number){str_arr+=num
      chek.push(/[0-9]/)}
    if(this.symbol){
      str_arr+=te
      chek.push(te)
    }
    str_arr=str_arr.split('')
    let key=true
    while(key){
      paswod_arr=[]
      for(let zero=0,l=this.length;zero<l;zero+=1){
        paswod_arr.push(str_arr[Math.floor(Math.random()*str_arr.length)])
      }
      key=false
      chek.forEach((item)=>{
        if(item.toString().indexOf('/')==0){
      if(!item.test(paswod_arr.join(''))){
      key =  true
      }
        }
        else{
          let ker=true
          item.split('').forEach((d)=>{
          ker =  paswod_arr.join('').indexOf(d)>=0?false:true
          })
          if(ker){
            key=true
          }
        }
      })
    }return paswod_arr.join('')
    }
    rander(){
      this.input_dom.value= this.handler()
    }
  }

二、示例

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<input type="text" id="in" />
  <input type="button" value="生成随机密码" onclick="creat_password()">
</body>
<script src="./main.js"></script>
<script>
function creat_password(){
  let ne=new generatePassword(true ,true ,true,true,14,document.querySelector('#in'),{})
  ne.rander()
}
</script>
</html>
效果

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值