var commonSymbol = "[\\,\\.\\`\\~\\!\\@\\#\\$\\%\\\\^\\&\\*\\(\\)\\-\\_\\=\\+\\[\\{\\]\\}\\\\|\\;\\:\\‘\\’\\“\\”\\<\\>\\/?]+"; var spliter = ","; var clickFlag=false; var nowid; var totalid; var can1press=false; var isShow=true; var isRed=true; var showCodeFlag=false; /** * 校验用户名合法性 * @returns */ function check_name() { var d = $.trim($("#name").val()); /*var regPhone = /^(13[0-9]|15[0-9]|18[0-9]|147)\d{8}$/;*/ var regName = /^[a-zA-Z0-9\_]*$/; if (d == "") { return 1; } if (d.length < 6) { return 2; } if (d.length > 20) { return 3; } if (!regName.test(d)) { return 4; } /*if(regPhone.test(d)){ return 5; }*/ return d; } function checkNameExists() { var flag; var username = $.trim($("#name").val()); if (username == "") { showErrorInfo("请输入登录名"); return false; } $.ajax({ url : ctx + "/passport/sso/checkUsernameExistForMobileLogin.do", data : { "username" : encodeURIComponent(username) }, cache:false, async : false, success : function(data) { flag = !data; if (!flag){ showErrorInfo("该用户名或手机号尚未注册"); } } }); if (flag) { removeErrorInfo(); } return flag; } /** * 用户名输入框onblur事件响应 * @returns {Boolean} */ function checkNameOnBlur() { var b = check_name(); var flag = false; if (b == 1) { showErrorInfo("请输入登录名"); return false; } else if(b == 2){ showErrorInfo("用户名必须大于6位"); return false; }else if(b == 3){ showErrorInfo("用户名不得超过20位"); return false;; }else if(b == 4){ showErrorInfo("用户名只能包含数字、字母、下划线"); return false; }else{ $.ajax({ url : ctx + "/passport/sso/checkUsernameExist.do", data : { "username" : encodeURIComponent(encodeURIComponent(b)) }, async : false, success : function(data) { flag = data; if (!data){ showErrorInfo("该用户名已被注册"); } } }); if (flag) { removeErrorInfo(); } return flag; } } function check_pwd(){ var p = $("#pre_password").val(); if (p == "") { return 1; } if (p.length > 20) { return 2; } if (p.length < 6) { return 3; } var m = /\s+/; if (m.test(p)) { return 4; } var k = /^[0-9]+$/; if (k.test(p)) { return 5; } var j = /^[a-zA-Z]+$/; if (j.test(p)) { return 6; } var o = /^[^0-9A-Za-z]+$/; if (o.test(p)) { return 7; } if (isSameWord(p)) { return 8; } if (checkWords()) { return 9; } var n = "d*" + commonSymbol + ""; var i = "\\\d+[A-Za-z]|[A-Za-z]+[0-9]+|[A-Za-z]+" + commonSymbol + "[0-9]+|[A-Za-z]+[0-9]+" + commonSymbol + "|" + n + ""; var l = new RegExp(i); if (!l.test(p)) { return 10; } return 0; } /** * 校验密码合法性 * @returns {Number} */ function check_pwd1() { var p = $("#password").val(); if (p == "") { return 1; } if (p.length > 20) { return 2; } if (p.length < 6) { return 3; } var m = /\s+/; if (m.test(p)) { return 4; } var k = /^[0-9]+$/; if (k.test(p)) { return 5; } var j = /^[a-zA-Z]+$/; if (j.test(p)) { return 6; } var o = /^[^0-9A-Za-z]+$/; if (o.test(p)) { return 7; } if (isSameWord(p)) { return 8; } if (checkWords()) { return 9; } if($("#password").val() != $("#password2").val() && "" != $("#password").val() && "" != $("#password2").val()){ return 10; } var n = "d*" + commonSymbol + ""; var i = "\\\d+[A-Za-z]|[A-Za-z]+[0-9]+|[A-Za-z]+" + commonSymbol + "[0-9]+|[A-Za-z]+[0-9]+" + commonSymbol + "|" + n + ""; var l = new RegExp(i); if (!l.test(p)) { return 11; } return 0; } function checkPasswordNull() { var p = $("#password").val(); if (p == "") { showErrorInfo("请输入密码"); return false; } } function checkPrePasswordOnBlur() { var b = check_pwd(); // if (b != 0) { // jQuery("#password2").attr("readonly", "readonly"); // } if (b == 1) { showErrorInfo("原密码不能为空"); return false; } else if (b == 2) { showErrorInfo("密码不得超过20位"); return false; } else if (b == 3) { showErrorInfo("密码不得少于6位"); return false; } else if (b == 4) { showErrorInfo("密码中不允许有空格"); return false; } else if (b == 5) { showErrorInfo("密码不能全为数字"); return false; } else if (b == 6) { showErrorInfo("密码不能全为字母"); return false; } else if (b == 7) { showErrorInfo("密码不能全为符号"); return false; } else if (b == 8) { showErrorInfo("密码不能全为相同字符或数字"); return false; } else if (b == 9) { showErrorInfo("密码不能与用户名相似"); return false; }else{ removeErrorInfo(); return true; } } /** * 密码输入框onblur事件相应 * @returns {Boolean} */ function checkPasswordOnBlur() { var b = check_pwd1(); // if (b != 0) { // jQuery("#password2").attr("readonly", "readonly"); // } if (b == 1) { showErrorInfo("密码不能为空"); return false; } else if (b == 2) { showErrorInfo("密码不得超过20位"); return false; } else if (b == 3) { showErrorInfo("密码不得少于6位"); return false; } else if (b == 4) { showErrorInfo("密码中不允许有空格"); return false; } else if (b == 5) { showErrorInfo("密码不能全为数字"); return false; } else if (b == 6) { showErrorInfo("密码不能全为字母"); return false; } else if (b == 7) { showErrorInfo("密码不能全为符号"); return false; } else if (b == 8) { showErrorInfo("密码不能全为相同字符或数字"); return false; } else if (b == 9) { showErrorInfo("密码不能与用户名相似"); return false; } else if(b == 10){ showErrorInfo("密码两次输入不一致"); return false; } else if(b == 11){ showErrorInfo("密码不能输入特殊字符"); return false; }else { removeErrorInfo(); return true; } } function isSameWord(g) { var e; if (g != null && g != "") { e = g.charCodeAt(0); e = "\\" + e.toString(8); var f = "[" + e + "]{" + (g.length) + "}"; var h = new RegExp(f); return h.test(g); } return true; } function checkWords() { var d = jQuery("#password").val(); var c = $.trim(jQuery("#name").val()); if (c == undefined) { return false; } if (c.substring(0, c.length - 1) == d) { return true; } if (c.substring(0, c.length - 1) == d.substring(0, d.length - 1)) { return true; } if (c.substring(1, c.length) == d) { return true; } if (c.substring(1, c.length) == d.substring(1, d.legnth)) { return true; } if (d.substring(0, d.length - 1) == c) { return true; } if (d.substring(1, d.length) == c) { return true; } } /** * 确认密码输入框onblur事件 * @returns {Boolean} */ function checkPassword2OnBlur() { var b = check_pwd2(); if (b == 1) { showErrorInfo("请重新输入新密码"); return false; } else { if (b == 2) { showErrorInfo("两次密码输入不一致"); return false; } else { removeErrorInfo(); return true; } } } /** * 校验确认密码输入框 * @returns {Number} */ function check_pwd2() { var d = $("#password").val(); var c = $("#password2").val(); if (c == "") { return 1; } if (d != c && ""!=d && ""!=c) { return 2; } return 0; } /** * 手机号码输入框onblur事件 * @returns {Boolean} */ function checkMobileOnBlur() { var b = check_mobile(); if (b == 1) { showErrorInfo("手机号不能为空"); return false; } else if (b == 2) { showErrorInfo("请输入合法的11位手机号"); return false; } else { removeErrorInfo(); return true; } return true; } /** * 校验手机号 * @returns {Number} */ function check_mobile() { var d = jQuery.trim(jQuery("#mobile").val()); if (d == "") { return 1; } // var c = "^(13[0-9]||15[012356789]||18[012356789]||147)\\d{8}$"; var c = "^(1)\\d{10}$"; var r = new RegExp(c); if (!r.test(d)) { return 2; } return 0; } /** * 向目标手机号发送短信验证码 */ var timeout = 60; var timer; var handler = function(){ $("#validBtn").text(timeout + "s后重新发送"); timeout--; if (timeout <= 0) { clearInterval(timer); $("#validBtn").text("获取验证码"); $("#validBtn").prop("disabled", false); $("#validBtn").css("background-color","#fe5d51"); timeout = 60; return true; }else{ } } function sendValidCode(type) { var mobile = $.trim($("#mobile").val()); var name = $.trim($("#name").val()); var glCaptchaToken = $.trim($("#glCaptchaToken").val()); var flag = checkMobileOnBlur(); if (!flag) { return false; } if (!valideCodeResult) { showErrorInfo("请输入正确的图形验证码!"); return false; } // 设置按钮不可用 $("#validBtn").css("background-color","#a5b4c5").prop("disabled", true); $.ajax({ url : ctx + "/passport/sso/sendValidSms.do", data : { "mobile" : mobile, "username" : name, "type" : type, "glCaptchaToken" : glCaptchaToken }, type : "POST", success : function(data) { var json = eval('(' + data + ')'); if (json.code == 0 || json.code == "0") { if(json.type == "3"){ //验证码失败 $("#glCaptchaImg").click(); $('#glCaptchaCode').css("background", "#ef4300"); $('#glCaptchaCode').focus(); } // 发送失败, showErrorInfo(json.msg); $("#validBtn").css("background-color","#fe5d51").prop("disabled", false); return false; } else if (json.code == 1 || json.code == "1") { // 开启定时任务 $("#validBtn").css("background-color","#a5b4c5").prop("disabled",true); timer = setInterval(handler, 1000); showErrorInfo(json.msg); return true; } } }); } /** * 校验验证码是否合法 */ function checkCodeOnBlur() { var code = $("#validCode").val(); if (code == "") { showErrorInfo("请输入短信验证码") return false; } else if (code.length != 6) { showErrorInfo("手机验证码长度必须为6位"); return false; } var k = /^[0-9]+$/; if (!k.test(code)) { showErrorInfo("手机验证码必须为数字"); return false; } else { removeErrorInfo(); return true; } } /** * 验证密码强度 */ function passwordOnFocus() { var b = jQuery("#password"); if (b.val() == "") { showErrorInfo("密码不能为空"); return false; } changePassStrong(); }; function changePassStrong() { var c = jQuery("#password"); if (check_pwd1() == 0) { jQuery("#password2").removeAttr("readonly"); jQuery("#password2").css("background-color", c.css("background-color")); } else { jQuery("#password2").attr("readonly", "readonly"); jQuery("#password2").css("background-color", "#D2D2D5"); } if (c.val().length == 0) { jQuery("#pswdLevel").hide(); hideOtherTips("password"); return } else { jQuery("#password_tip").hide(); jQuery("#password_error").hide(); } var d = getPassPoint(c); jQuery("#pswdLevel").attr("class", "").addClass("pswdLevelA").attr("style", "display:block"); if (d >= 80) { jQuery("#pswdLevel").attr("class", "").addClass("pswdLevelC").attr( "style", "display:block"); return } if (d >= 50) { jQuery("#pswdLevel").attr("class", "").addClass("pswdLevelB").attr( "style", "display:block"); return } } /** * 获取密码强度权值 * >=80:强;50-80:中;<=50:弱 */ function getPassPoint() { var c = jQuery("#password").val(); var d = checkPassLength(c); d = d + checkPassSymbol(c); d = d + checkPassNumAndWord(c); d = d + (checkPassAll(c)); d = d + checkPassAlpha(c); d = d + checkPassNum(c); return d; } function checkPassLength(b) { if (b.length > 6 && b.length < 8) { return 10; } if (b.length >= 8) { return 25; } return 0; } function checkPassSymbol(b) { if (getSymbolPattern(2).test(b)) { return 25; } else { if (getSymbolPattern(1).test(b)) { return 10; } } return 0; } function getSymbolPattern(f) { var e = "" + commonSymbol.substr(0, commonSymbol.length - 1) + "{" + f + ",}"; var d = new RegExp(e); return d; } var patternNumAlpha = /^(?=.*\d.*)(?=.*[a-zA-Z].*)./; function checkPassNumAndWord(b) { if (patternNumAlpha.test(b)) { return 5; } return 0; } function isDigit(c) { var d = /(?=.*[0-9])/; return getCompareResult(d, c); } function isBigWord(c) { var d = /(?=.*[A-Z])/; return getCompareResult(d, c); } function isSymbol(f) { var d = "(?=.*" + commonSymbol.substr(0, commonSymbol.length - 1) + ")"; var e = new RegExp(d); return getCompareResult(e, f); } function isSmallWord(c) { var d = /(?=.*[a-z])/; return getCompareResult(d, c); } function checkPassAll(b) { if (isDigit(b) && isBigWord(b) && isSmallWord(b) && isSymbol(b)) { return 5; } if (patternNumAlpha.test(b)) { if (isSymbol(b)) { return 3; } else { return 2; } } return 0; } function checkPassAlpha(d) { var f = /^[a-z]+$|^[A-Z]+$/; if (f.test(d)) { return 10; } var e = /.*?[A-Z]+?.*?[a-z]+?.*?|.*?[a-z]+?.*[A-Z]+?.*?/; if (e.test(d)) { return 25; } return 0; } function checkPassNum(b) { if (getNumPattern(3).test(b)) { return 20; } if (getNumPattern(1).test(b)) { return 10; } return 0; } function getNumPattern(f) { var e = "[0-9]{" + f + ",}"; var d = new RegExp(e); return d; } /** * 展示错误信息 * @param msg */ function showErrorInfo(msg) { var objtip=$("#msgTip"); objtip.show(); objtip.text(msg); return false; } /** * 展示错误信息 * @param msg * @param id html元素id */ function showErrorInfoWithId(msg,id) { var objtip=$("#"+id); objtip.text(msg); return false; } function removeErrorInfo() { $("#msgTip").text(""); }