完整校验密码不能是连续字符,6-20位,必须包含字母数字特殊字符

修改密码方法:

function changePwd(){

var oldPwd = $("#oldPwd").val();
var newPwd = $("#newPwd").val();
var newPwd2 = $("#newPwd2").val();

if(oldPwd=="" ||oldPwd==null){
bt_alert(‘提示‘,‘登录密码不能为空‘);
return;

}

if(newPwd=="" ||newPwd==null ){
bt_alert(‘提示‘,‘修改密码不能为空‘);
return;
}
if(!vpwd(newPwd)){
return;
}
if(newPwd2=="" ||newPwd2==null ){
bt_alert(‘提示‘,‘确认密码不能为空‘);
return;
}
if(!vpwd(newPwd2)){
return;
}

if(newPwd != newPwd2){
bt_alert(‘提示‘,‘修改密码与确认密码不一致‘);
return;
}
if(oldPwd == newPwd){
bt_alert(‘提示‘,‘旧密码不能与新密码相同‘);
return;
}

var oldPwdn = hex_md5(oldPwd);
var newPwdn = hex_md5(newPwd);
var newPwd2n = hex_md5(newPwd2);
$.ajax({
type: "POST",
url:‘<%=path%>/ajaxChangePwd.action‘,
data:{
oldPwd:oldPwdn,
newPwd:newPwdn,
newPwd2:newPwd2n,
},
async: false,
success: function(result) {
if(result==‘1‘){
bt_alert(‘提示‘,‘修改成功‘);
// bt_alert(‘提示‘,‘密码修改成功‘,function(){
window.parent.location=‘<%=path%>/outLogin.action‘;
//});
}else if(result==‘FF‘){
bt_alert(‘提示‘,‘登录密码不对,请确认‘,function(){
window.location.href=‘<%=path%>/loadEditPwd.action‘;
});
}else{
bt_alert(‘提示‘,‘密码修改失败‘,function(){
window.location.href=‘<%=path%>/loadEditPwd.action‘;
});
}
}
});
}

function vpwd(now){
var re1 = new RegExp("[a-zA-Z]");//字母
var len1=re1.test(now);
var re2 = new RegExp("[0-9]");//数字
var len2=re2.test(now);
var re3 = new RegExp("[^a-zA-Z0-9]");//特殊符号
var len3=re3.test(now);
var re4 = new RegExp("[\\u4E00-\\u9FFF]+","g");//中文
var len4=re4.test(now);

//不能相同字符(如111、aaa)连续3位或3位以上
var re5 = /(\w)*(\w)\2{2}(\w)*/g;
if(re5.test(now)){
bt_alert("提示","不能相同的字符连续3位或3位以上");
return false;
}

if(!LxStr(now)){
bt_alert("提示", "不能连续字符,连续3位或3位以上");
return false;
}

if(re4.test(now)){
bt_alert(‘提示‘,‘不应包含汉字!‘);
return false;
}
if(now.length<6 || now.length>20){
bt_alert(‘提示‘,‘密码长度应在6-20!‘);
return false;
}
if(len1 && len2 && len3){
return true;
}else{
bt_alert(‘提示‘,‘密码强度不符合,至少6位且至少包含数字字母特殊符号各一位!‘);
return false;
}
}

//校验不能是连续字符方法
LxStr = function(str){
var arr = str.split(‘‘);
var flag = true;
for (var i = 1; i < arr.length-1; i++) {
var firstIndex = arr[i-1].charCodeAt();
var secondIndex = arr[i].charCodeAt();
var thirdIndex = arr[i+1].charCodeAt();
thirdIndex - secondIndex == 1;
secondIndex - firstIndex==1;
if((thirdIndex - secondIndex == 1)&&(secondIndex - firstIndex==1)){
flag = false;
}
}
if(!flag){
$("#message_").text("您的工号为弱口令密码,请修改密码后登录!");
return flag;
}
return flag;
}

原文地址:https://www.cnblogs.com/guangxiang/p/10251746.html

时间: 2024-11-06 03:53:20

完整校验密码不能是连续字符,6-20位,必须包含字母数字特殊字符的相关文章

密码的校验.大小写字母,数字,特殊字符中的至少3种

大小写字母,数字,特殊字符中的至少3种.8位以上,正确返回true public static boolean rexCheckPassword(String input) { // 8-20 位,字母.数字.字符 String regStr = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,20}$"; return

validate插件:验证密码没有空格 用户名是5-10位 至少包含数字和大小写字母中的两种字符

//校验密码是否含有空格 jQuery.validator.addMethod("notblank", function(value, element) { var pwdblank = /^\S*$/; return this.optional(element) ||(pwdblank.test(value)); }, "密码不可包含空格"); //用户名必须需包含数字和大小写字母中至少两种 jQuery.validator.addMethod("use

最长连续字符

用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1. #include <iostream> #include <cstring> using namespace std; int MaxLengthString(char str[]) { int len=strlen(str); if(len==1) return 1; if(str=='\0') return 0; if(*(str+1)=='\0') retu

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

一.需求描述 输入一个字符串,编写程序找出这个字符串中的最长连续字符,并求出其连续出现的次数. 例如,"123444445"中的最长连续字符是4,其连续出现的次数为5:"abcddef"中的最长连续字符是d,其连续出现的次数为2:"ab"中的最长连续字符是a,其连续出现的次数为1. 二.算法设计 我们可以采取逐个比较字符串中各个字符的办法来获取最长连续字符及其连续出现的次数.程序的总体流程如图1所示. 图1 程序的总体流程 三.特殊流程考虑 在编

华为 2015 机试 输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin。

1 package 华为机试; 2 //C++ 输入:由数字和字母组成的字符串,例如:333aaabb55ppin 3 //输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aabb55pin. 4 5 //这句话的核心就是在字符串删除一些字符,感觉处理很复杂,删除哪些字符呢?我们观察发现, 本字符串中删除了一个3,一个a,一个p,满足的规则是啥呢? 333中删除最后一个3,3aa删除了一个a,5pp中删除一个p, 6 //规

[C++]_[获取Utf8字符串的字符个数和获取n个连续字符]

场景: 1.有时候需要统计utf8字符串的个数,单纯统计字节个数是不行的. 2.有时候也需要获取从某个位置开始的n个连续字符用于显示或计算. static int GetUtf8LetterNumber(const char *s) { int i = 0, j = 0; while (s[i]) { if ((s[i] & 0xc0) != 0x80) j++; i++; } return j; } static int GetUtf8Word(const char *s,int wanted

JAVA校验字符串中的每个字符是否都在GB2312字符集中

需要在服务器端校验前台表单中传来的字符串,是否符合GB2312编码(所有字符都在GB2312字符集). import java.io.UnsupportedEncodingException; public class EncodingValidationUtil { /** * 校验目标字符串中的字符是否均在GB2312字符集 * @param str * @return */ public static boolean isGB2312(String str) { if(str == nul

密码等级:至少包含字母、大小写数字、字符中的两种 JS实现方案

前言 密码,如果设置的太简单,很容易就被攻破,所以很多网站将密码设置的要求设置的挺严格,一般是字母.数字.字符3选2,区分大小写.对于设置得太简单的密码,予以错误提示.或者予以密码等级(低中高)显示,让用户设置高级密码.那如何利用JS实现呢? 代码 链接:https://gist.github.com/xuanfeng/a44f20cb4569d5b4cd5e 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

去除连续字符

//描述:输入一串字符(包括数字),去掉连续次数多于3的字符,如果去掉后仍有连续次数多于3的, //继续进行同样的处理,直到结果中没有出现连续次数多于3的数字为止. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int flag = 0; void delete(char s[]) { int length; int i, j, k , m; length = strlen(s); fl