简易密码校验js

这篇博文介绍了如何使用JavaScript进行密码强度校验,规则包括不允许四位连续递增或递减数字以及同一个数字连续出现四位。通过正则表达式 /^(d)1+$/ 实现该功能,并提供了一段简单的测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一篇博文。想写好久了,不知道写点什么,就写个最近开发的遇到的吧,有点弱。见谅哈~

输入六位数字作为密码,要求密码强度不能太弱,弱密码判断的规则是“不能包含四位连续递增或递减的数字,同一个数字不能连续输入四位”。

我的方式是js做判断,代码如下:

//判断是否是6位数字
 function validate(str){  
    var reg = new RegExp("^[0-9]{6}$");  

    if(!reg.test(str)){  
        alert("请输入6个数字!");  
        return false;
    }  
  }  

//判断数组递增递减
function isContinuityArray(arrStr,flag) {
    var isContinuityArray = false;
    var array = arrStr.split('');
    var arrayCount = array.length - 1;
    for (var i = 0; i < arrayCount; i++) {
        var currentArr=0;
        var nestArr = Number(array[i + 1]);
        if(flag == 1){
            currentArr = Number(array[i]) + 1;

        }else{
            currentArr = Number(array[i]) - 1;
        }
        if(i+1==arrayCount){
            currentArr= Number(array[i]);
            nestArr= Number(array[i]);
        }
        if (currentArr != nestArr) {
            isContinuityArray = true;
            break;
        } else {
        isContinuityArray = false;
        }


    }
    return isContinuityArray;
}


//测试方法
function test(info) {
   if (!/^\d{6}$/.test(info)) return false; // 不是6位数字
    var arry = [];
    //要连续四位,这个地方如有更好处理方式,请留言
    arry.push(info.substring(0,4));
    arry.push(info.substring(1,5));
    arry.push(info.substring(2,6));
    var flag=0;
    $.each(arry,function(n,s){
        if (/^(\d)\1+$/.test(s)) {flag =1;return false;}  // 全一样

        var str = s.replace(/\d/g, function($0, pos) {
            return parseInt($0)-pos;
        });
        if (/^(\d)\1+$/.test(str)) {flag =1;return false;}   // 顺增

        str = s.replace(/\d/g, function($0, pos) {
            return parseInt($0)+pos;
        });
        if (/^(\d)\1+$/.test(str))  {flag =1;return false;}   // 顺减

    });
    if(flag==1){
        return false;
    }else{
        return true;}

}
//获取输入框数据调用测试方法
function checkInfo(){
    var info = $('#aa').val();
    alert(test(info));
}

页面代码:

<input type="text" id="aa"/>
<button class="ter_search mt2" type="button" onclick="checkInfo()">提交</button>

以上为简单的测试,已测试过,可以使用。

总结:主要是正则判断的使用,/^(\d)\1+$/ ,其中\1表示与之前数字一样。

*其中参考其他网址,由于没有保存网址,请见谅。本文仅做笔记使用。
如果有不合适的地方,请大家多多指正!*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值