javascript-求一个类似于强度较强的密码验证,js或者正则都行,最好有完整的案例

问题描述

求一个类似于强度较强的密码验证,js或者正则都行,最好有完整的案例

密码规则:
1.至少包含一个大写、一个小写、一个数字
2.不得小于8位字符,不得大于16位
3.不能输入超过2位相同的字符(如:aaa、1111)
4.不能输入连续字符超过2位(如:123、456)
5.用户名字段不能包含在密码内

注:是java开发,jsp页面使用的

解决方案

测试过,这个可以用了

 function password(psd,user){
    if(psd.length>16 || psd.length<8){
        alert("长度应为8-16");
        return false;
    }
    if(psd.match(user)){
        alert("不能含有用户名");
        return false;
    }

    if(!psd.match(/[a-z]/g)){//是否存在小写
        alert("至少有一个小写");
        return false;
    }

    if(!psd.match(/[A-Z]/g)){//是否存在大写
        alert("至少有一个大写");
        return false;
    }

    if(!psd.match(/[0-9]/g)){//是否存在数字
        alert("至少有一个数字");
        return false;
    }

    if(psd.match(/(012|123|234|345|456|567|678|789)/g)){//不能出现连续数字
        alert("不能出现连续数字超过2个");
        return false;
    }
    for(var i=0;i<psd.length;i++){
        var regex = psd.substring(i, i+1) + "{" + 3 + "}";
        if(psd.match(regex)){//不能出现重复字符
            alert("不能出现重复字符超过2个");
            return false;
        }
    }

}

解决方案二:

不知道这个有没有用,没测试,照着写的
var jsCheck=function(){
var check=$("#password").val();
var userName=$("#userName").val();
boolean flag=true;
if(check.length16){
flag=false;
}
if(/!(^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?d)(?=.*?[#@*&.]).*$)/){
flag=false;
}
for (var i = 0; i < check.length;i++) {
if(i<check.length-1){
if(check.charAt(i)==check.charAt(i+1)){
flag=false;
}
}
if(i<check.length-2){
if(check.charAt(i)+1==check.charAt(i+1)&&check.charAt(i+1)+1=check.charAt(i+2)){
flag=false;
}
}
}
if(userName.indexOf(check)!=-1){
flag=false;
}
return flag;
}

解决方案三:
*

//判断输入密码的类型

function CharMode(iN){

if (iN>=48 && iN <=57) //数字

return 1;

if (iN>=65 && iN <=90) //大写

return 2;

if (iN>=97 && iN <=122) //小写

return 4;

else

return 8;

}

//bitTotal函数

//计算密码模式

function bitTotal(num){

modes=0;

for (i=0;i
if (num & 1) modes++;
num>>>=1;

}

return modes;

}

//返回强度级别

function checkStrong(sPW){

if (sPW.length<=4)

return 0; //密码太短

Modes=0;

for (i=0;i<sPW.length;i++){

//密码模式

Modes|=CharMode(sPW.charCodeAt(i));

}

return bitTotal(Modes);

}

//显示颜色

function pwStrength(pwd){

O_color="#eeeeee";

L_color="#FF0000";

M_color="#FF9900";

H_color="#33CC00";

if (pwd==null||pwd==''){

Lcolor=Mcolor=Hcolor=O_color;

}

else{

S_level=checkStrong(pwd);

switch(S_level) {

case 0: Lcolor=Mcolor=Hcolor=O_color;

case 1: Lcolor=L_color; Mcolor=Hcolor=O_color; break;

case 2: Lcolor=Mcolor=M_color; Hcolor=O_color; break;

default: Lcolor=Mcolor=Hcolor=H_color;

}

}

document.getElementById("strength_L").style.background=Lcolor;

document.getElementById("strength_M").style.background=Mcolor;

document.getElementById("strength_H").style.background=Hcolor;

return;

}

可以照着你的需求改动一下

时间: 2024-08-31 08:20:06

javascript-求一个类似于强度较强的密码验证,js或者正则都行,最好有完整的案例的相关文章

求一个类似于银行转账的方法

问题描述 比如数据库有一个account表accountuserid|account|balance1|建行|50001|工行|3000我想写一个方法实现把建行的钱取出若干加到工行去建行本来的钱也减相应的值两个账户和转账金额在前台页面通过表单接收比如:建行工行100就是从建行取出100存入工行这样 解决方案 解决方案二:没有看明白你是要写程序啊还是要一个SQL啊不懂解决方案三:要一个java方法解决方案四:引用2楼seven_11的回复: 要一个java方法 就是jdbc对数据库的操作解决方案五

class-jsp做一个类似于视频评论下的回复功能的获得数据显示,对前端不是很熟悉,求高手解答

问题描述 jsp做一个类似于视频评论下的回复功能的获得数据显示,对前端不是很熟悉,求高手解答 20C CREATE TABLE videocomment (id int(10) NOT NULL AUTO_INCREMENT/**ID**/createTime timestamp NULL DEFAULT CURRENT_TIMESTAMP/**创建时间**/userId int(10) NOT NULL/**用户ID**/videoId int(10) NOT NULL/**视频ID**/re

如何用JavaScript实现一个数组惰性求值库

在编程语言理论中,惰性求值(英语:Lazy Evaluation),又译为惰性计算.懒惰求值,也称为传需求调用(call-by-need),是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作.它有两个相关而又有区别的含意,可以表示为"延迟求值"和"最小化求值",除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型. 看到函数式语言里面的惰性求值,想自己用 JavaScript 写一个最简实现,加深对惰性求值了解.用了两种方法,都

javascript引擎-用javascript编写一个登陆的页面,求代码 ,急求!!

问题描述 用javascript编写一个登陆的页面,求代码 ,急求!! 像是这样的:function request(paras){//获取url参数 var url=location.href; var paraString=url.substring(url.indexOf("?")+1,url.length).split("&"); var paraObj={}; for (i=0; j=paraString[i]; i++)paraObj[j.sub

一个类似于Calendar日期控件,不用再刷新页面。

1. 一个类似于Calendar日期控件,不用再刷新页面. 2. 判断文本控件里的值是否能转换成日期型. .htc 例1: /* *xpMask.htc * */ //------------------------------------------------------------------------------------------------------ <PUBLIC:COMPONENT lightWeight=false > <PUBLIC:DEFAULTS cont

求一个字符串编辑成为另一个字符串的最少操作数

原题链接: http://oj.leetcode.com/problems/edit-distance/ 这道题求一个字符串编辑成为另一个字符串的最少操作数,操作包括添加,删除或者替换一个字符.这道题难度是比较大的,用常规思路出来的方法一般都是brute force,而且还不一定正确.这其实是一道二维动态规划的题目,模型上确实不容易看出来,下面我们来说说递推式. 我们维护的变量res[i][j]表示的是word1的前i个字符和word2的前j个字符编辑的最少操作数是多少.假设我们拥有res[i]

额,又来了,再求一个清除所有标签所有属性的的JS 正则表达式^^

问题描述 额,又来了,再求一个清除所有标签所有属性的的JS 正则表达式^^比如<p style="border:1px;">呵呵</p> <span id="row">第一行</span>等,清除完后只要<p>呵呵</p> <span>第一行</span> 这样就可以了, 解决方案 应该满足你的要求了.<!DOCTYPE html PUBLIC "-//W

求一个接口能使js直接调用到ios开发里面的方法

问题描述 求一个接口能使js直接调用到ios开发里面的方法 求一个接口能使js直接调用到ios开发里面的方法,就是js里面连接一个接口,能直接调用ios里面的函数,进行数据的交互 解决方案 参考iOS中JavaScript和OC交互

c++-我想做一个类似于记事本的软件,但是该怎么办才能通过双击将文件名传到主函数?

问题描述 我想做一个类似于记事本的软件,但是该怎么办才能通过双击将文件名传到主函数? 我想要做一个类似于记事本的软件,先做到能写入,做到双击可以打开文件xxx.lg对其写入数据.但是现在在dos命令符中能运行,双击却打不开(我已配置好注册表),求大神帮助解决/*实现记事本书写的功能,并进行简单的加密*/ #include #include#include#includeusing namespace std;int main(int argcchar argv[]) { string str;