• 密码必须为8到16位且必须包含数字和字母
  • 密码必须包含特殊字符【_&#%】
  • 不能连续字符(如123、abc)连续3位或3位以上
  • 不能相同字符(如111、aaa)连续3位或3位以上
/**
* 外层密码修改
*/
(function(){
var modifyPassword = {};//------这个可以自己去修改--不同的页面取名不一样
/**
* 进入页面后需要初始化的事件
*/
modifyPassword.initEvent = function(){
//获取传递的参数
var userId = getQueryString("user_id");
$("#user_id").val(userId);
}; do_submit = function(){
//序列话数据
var param = $('#modifPwd').serializeObject(); var user_id =($("#user_id").val()).trim();
var login_passwd_old = ($("#login_passwd_old").val()).trim();
var login_passwd_new = ($("#login_passwd_new").val()).trim();
var login_passwd_new_re = ($("#login_passwd_new_re").val()).trim();
//密码必须包含数字和字母
//密码长度8到16位
var regex = /(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,16}/;
if(!regex.test(login_passwd_new)){
alert("您的工号为弱口令密码,请修改密码后登录");
return false;
}
//密码必须包含特殊字符 _&#%
if(!(login_passwd_new.indexOf("_")!=-1||login_passwd_new.indexOf("&")!=-1||login_passwd_new.indexOf("#")!=-1||login_passwd_new.indexOf("%")!=-1)){
alert("您的工号为弱口令密码,请修改密码后登录");
return false;
}
//不能连续字符(如123、abc)连续3位或3位以上
if(!LxStr(login_passwd_new)){
$.messager.alert("提示", "您的工号为弱口令密码,请修改密码后登录");
return false;
}
//不能相同字符(如111、aaa)连续3位或3位以上
var re = /(\w)*(\w)\2{2}(\w)*/g;
if(re.test(login_passwd_new)){
alert("您的工号为弱口令密码,请修改密码后登录");
return false;
}
if(login_passwd_old==login_passwd_new){
alert("新密码与旧密码重复");
return false;
}
if($.trim(login_passwd_new) != $.trim(login_passwd_new_re)){
alert("新密码与重复密码不一致");
return;
}
if(user_id==""){
return;
}
if(login_passwd_old==""||login_passwd_new==""){
alert("提示", "每一项都是必须填写的哟!");
return;
};
param.current_passwd = $.md5(param.login_passwd_old);
param.new_passwd = $.md5(param.login_passwd_new);
param.user = user_id
$.post(ctx+'/updatePassword.action',{user_id:user_id,current_passwd:$.md5(login_passwd_old),new_passwd:$.md5(login_passwd_new)},function(data){
if(data.code == '0000'){
alert("修改成功请重新登陆");
window.location = "/lms-base/login.jsp"
}else{
alert("修改失败");
}
},'json');
}
//不能连续字符(如123、abc)连续3位或3位以上
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;
}
getQueryString = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if ( r != null ){
return decodeURI(r[2]);
}else{
return null;
}
}
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
/**
* 此方法挪到最后调用
*/
$(document).ready(function(){
modifyPassword.initEvent();
});
})();

JS密码校验规则前台验证(不能连续字符(如123、abc)连续3位或3位以上)(不能相同字符(如111、aaa)连续3位或3位以上)的更多相关文章

  1. jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...

  2. Form的is_valid校验规则及验证顺序

    一.验证顺序   查看form下的源码了解顺序 BaseForm为基类,中间包含了is_valid校验方法 @html_safe class BaseForm: ......... self.is_b ...

  3. element-ui做表单验证 v-for遍历表单 自动生成校验规则 pc移动双适配

    整体思路: 1:利用element-ui的栅格实现小分辨率和大分辨率的适配 2:模拟一组数据,从中筛选出 绑定各个表单值的对象   以及生成验证规则对象 3:在script标签内 .data()外,自 ...

  4. jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...

  5. js验证银行卡号 luhn校验规则

    <script type="text/javascript"> //luhn校验规则:16位银行卡号(19位通用): // 1.将未带校验位的 15(或18)位卡号从右 ...

  6. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验

    一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...

  7. jQuery Validate 验证,校验规则写在控件中的具体例子

    将校验规则写到控件中 <script src="../js/jquery.js" type="text/javascript"></scrip ...

  8. 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结

    1.form的两个事件 submit,提交表单,如果直接调用该函数,则直接提交表单 onSubmit,提交按钮点击时先触发,然后触发submit事件.如果不加控制的话,默认返回true,因此表单总能提 ...

  9. jquery.validate.js之自定义表单验证规则

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

随机推荐

  1. Linux学习1-Xshell连接阿里云ECS服务器

    前言 前段时间双十一活动,头脑发热买了个阿里云的服务器,买了后也不知道怎么用一直放着在.最近想起来,于是看了下阿里云ECS的相关资料. 由于平常一直用xshell比较多,不太习惯阿里云的ESC终端连接 ...

  2. 实习医生格蕾第一季/全集Grey’s Anatomy迅雷下载

    第一季 Grey's Anatomy Season 1 (2005)看点:欢迎来到格雷斯医院,哈佛医学院西区最艰苦的外科住院医实习程序,医务新人最残酷的训练场.Meredith.Izzie和Chris ...

  3. 得到view坐标的各种方法

    这篇文章讲的方法全是再控件可以获取焦点的情况下执行的,如果在oncreat()里面执行,那么得到的都是0 1.getLocationInWindow 这个方法得到的是view相对于当前Activity ...

  4. .Net Core配置文件读取整理

    一 .配置文件说明 1.配置,主要是 指在程序中使用的一些特殊参数,并且大多数 仅在程序启动的之后指定不需要修改. 2.在以前.Net项目中配置文件主要指app.config或web.config,但 ...

  5. 说说初用 Mock 工具测试碰到的坑

    我是一个在校实习生,作为一个程序猿,是个菜鸟中战斗机!对于测试,只写过一点点简单到不能再简单了的 Junit 单元测试的例子(因为当时这足以应付学校课程的内容与要求).这几天在公司里要真枪实弹做测试的 ...

  6. RF的特征子集选取策略(spark ml)

    支持连续变量和类别变量,类别变量就是某个属性有三个值,a,b,c,需要用Feature Transformers中的vectorindexer处理 上来是一堆参数 setMaxDepth:最大树深度 ...

  7. Jackcess 1.2.13 发布,Java 访问 Access 数据库

    Jackcess 1.2.13 包含新的方法用于在数据库和附件内容解码中查找复杂值类型的关系,修复了 CodeHandler 相关的一些小 bug. Jackcess 是一个Java 类库,用来读写微 ...

  8. 样条之埃尔米特(Hermite)

    埃尔米特(Charles Hermite,1822—1901) 法国数学家.巴黎综合工科学校毕业.曾任法兰西学院.巴黎高等师范学校.巴黎大学教授.法兰西科学院院士.在函数论.高等代数.微分方程等方面都 ...

  9. Java系列:JVM中的OopMap(zz)

    调用栈里的引用类型数据是GC的根集合(root set)的重要组成部分:找出栈上的引用是GC的根枚举(root enumeration)中不可或缺的一环. JVM选择用什么方式会影响到GC的实现: 如 ...

  10. Java-JUC(九):使用Lock替换synchronized,使用Condition的await,singal,singalall替换object的wait,notify,notifyall实现线程间的通信

    Condition: condition接口描述了可能会与锁有关的条件变量.这些用法上与使用object.wait访问隐式监视器类似,但提供了更强大的功能.需要特别指出的是,单个lock可能与多个Co ...