【记录4】【密码生成】前端自动生成8位由字母和数字组成的密码

2 篇文章 0 订阅

最近做项目,需要管理员在登记新用户时可以点击按钮自动生成密码功能。

要求1:数字+大写字母+小写字母8位

  1. 长度为8
  2. 必须包含字母和数字(注意:这里没有说字母区分大小写)

效果图:

在这里插入图片描述

代码:

automaticallyGenerate(){
     console.log("自动生成");
     //可获取的字符串
     var chars = 'ABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz0123456789'
     var list = []
     //通过随机获取八个字符串的索引下标
     for(var i=0;i<8;i++){
        //61为chars字符串长度为62,注意索引是从0开始的
         let val_1 = Math.round(Math.random()*61)  
         list.push(val_1)
     }
     
     //再根据随机获取的8个字符串索引拿到这8个字符串进行拼接
     var passwd = ''
     for(var n=0;n<list.length;n++){
         passwd +=  chars.charAt(list[n])
     }
     // var regNumber = /[A-Za-z0-9]{8}$/
    //最后判断是否符合要求(长度为8,由字母和数字组成),符合,将赋值到密码字段,不符合,重新调用该函数获取,只到符合为止
     var regNumber = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8}$/
     if(regNumber.test(passwd) ){
         this.customerForm.password = passwd
     }else{
         this.automaticallyGenerate()
     }
 },

也可以借助自动生成密码的逻辑来实现验证码
小编亲测有效

要求2:数字+大写字母+小写字母+特殊字符8位

2021年12月29日 23:39 记录

根据需求变动,密码规则发生变化:要求是数字+大写字母+小写字母+特殊字符 生成8位密码字符
特殊符:.@$!%*#_~?&^

效果图

在这里插入图片描述

代码块

chars = 'ABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz0123456789.@$!%*#_~?&^'
此刻长度按73计算哟
for(var i=0;i<8;i++){
    let val_1 = Math.round(Math.random()*73)
    list.push(val_1)
}
正则如下:
/^(?![A-Za-z0-9]+$)(?![a-z0-9_!@#$%^&*()+.]+$)(?![A-Za-z_!@#$%^&*()+.]+$)(?![A-Z0-9_!@#$%^&*()+.]+$)[a-zA-Z0-9_!@#$%^&*()+.]{8,}$/

在这里插入图片描述
最后给大家分享一个可直接使用正则的博主链接点击跳转

有用的,请点个赞,让更多的人看到!!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值