验证
密码等级
function pwdLevel(value) {
var pattern_1 = /^.*([\W_])+.*$/i;
var pattern_2 = /^.*([a-zA-Z])+.*$/i;
var pattern_3 = /^.*([0-9])+.*$/i;
var level = 0;
if (value.length > 10) {
level++;
}
if (pattern_1.test(value)) {
level++;
}
if (pattern_2.test(value)) {
level++;
}
if (pattern_3.test(value)) {
level++;
}
if (level > 3) {
level = 3;
}
return level;
}
密码过于简单
var weakPwdArray = ["123456","123456789","111111","5201314","12345678","123123","password","1314520","123321","7758521","1234567","5211314","666666","520520","woaini","520131","11111111","888888","hotmail.com","112233","123654","654321","1234567890","a123456","88888888","163.com","000000","yahoo.com.cn","sohu.com","yahoo.cn","111222tianya","163.COM","tom.com","139.com","wangyut2","pp.com","yahoo.com","147258369","123123123","147258","987654321","100200","zxcvbnm","123456a","521521","7758258","111222","110110","1314521","11111111","12345678","a321654","111111","123123","5201314","00000000","q123456","123123123","aaaaaa","a123456789","qq123456","11112222","woaini1314","a123123","a111111","123321","a5201314","z123456","liuchang","a000000","1314520","asd123","88888888","1234567890","7758521","1234567","woaini520","147258369","123456789a","woaini123","q1q1q1q1","a12345678","qwe123","123456q","121212","asdasd","999999","1111111","123698745","137900","159357","iloveyou","222222","31415926","123456","111111","123456789","123123","9958123","woaini521","5201314","18n28n24a5","abc123","password","123qwe","123456789","12345678","11111111","dearbook","00000000","123123123","1234567890","88888888","111111111","147258369","987654321","aaaaaaaa","1111111111","66666666","a123456789","11223344","1qaz2wsx","xiazhili","789456123","password","87654321","qqqqqqqq","000000000","qwertyuiop","qq123456","iloveyou","31415926","12344321","0000000000","asdfghjkl","1q2w3e4r","123456abc","0123456789","123654789","12121212","qazwsxedc","abcd1234","12341234","110110110","asdasdasd","123456","22222222","123321123","abc123456","a12345678","123456123","a1234567","1234qwer","qwertyui","123456789a","qq.com","369369","163.com","ohwe1zvq","xiekai1121","19860210","1984130","81251310","502058","162534","690929","601445","1814325","as1230","zz123456","280213676","198773","4861111","328658","19890608","198428","880126","6516415","111213","195561","780525","6586123","caonima99","168816","123654987","qq776491","hahabaobao","198541","540707","leqing123","5403693","123456","123456789","111111","5201314","123123","12345678","1314520","123321","7758521","1234567","5211314","520520","woaini","520131","666666","RAND#a#8","hotmail.com","112233","123654","888888","654321","1234567890","a123456"];
验证规则
var validateRegExp = {
decmal: "^([+-]?)\\d*\\.\\d+$", //浮点数
decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", //正浮点数
decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", //负浮点数
decmal3: "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$", //浮点数
decmal4: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$", //非负浮点数(正浮点数 + 0)
decmal5: "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$", //非正浮点数(负浮点数 + 0)
intege: "^-?[1-9]\\d*$", //整数
intege1: "^[1-9]\\d*$", //正整数
intege2: "^-[1-9]\\d*$", //负整数
num: "^([+-]?)\\d*\\.?\\d+$", //数字
num1: "^[1-9]\\d*|0$", //正数(正整数 + 0)
num2: "^-[1-9]\\d*|0$", //负数(负整数 + 0)
ascii: "^[\\x00-\\xFF]+$", //仅ACSII字符
chinese: "^[\\u4e00-\\u9fa5]+$", //仅中文
color: "^[a-fA-F0-9]{6}$", //颜色
date: "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", //日期
email: "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
idcard: "^[1-9]([0-9]{14}|[0-9]{17})$", //身份证
ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", //ip地址
letter: "^[A-Za-z]+$", //字母
letter_l: "^[a-z]+$", //小写字母
letter_u: "^[A-Z]+$", //大写字母
mobile: "^0?(13|15|18|14)[0-9]{9}$", //手机
notempty: "^\\S+$", //非空
password: "^.*[A-Za-z0-9\\w_-]+.*$", //密码
fullNumber: "^[0-9]+$", //数字
picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", //图片
qq: "^[1-9]*[1-9][0-9]*$", //QQ号码
rar: "(.*)\\.(rar|zip|7zip|tgz)$", //压缩文件
tel: "^[0-9\-()()]{7,18}$", //电话号码的函数(包括验证国内区号,国际区号,分机号)
url: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", //url
username: "^[A-Za-z0-9_\\-\\u4e00-\\u9fa5]+$", //户名
deptname: "^[A-Za-z0-9_()()\\-\\u4e00-\\u9fa5]+$", //单位名
zipcode: "^\\d{6}$", //邮编
realname: "^[A-Za-z\\u4e00-\\u9fa5]+$", // 真实姓名
companyname: "^[A-Za-z0-9_()()\\-\\u4e00-\\u9fa5]+$",
companyaddr: "^[A-Za-z0-9_()()\\#\\-\\u4e00-\\u9fa5]+$",
companysite: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&#=]*)?$"
};
//主函数
(function ($) {
$.fn.jdValidate = function (option, callback, def) {
var ele = this;
var id = ele.attr("id");
var type = ele.attr("type");
var rel = ele.attr("rel");
var _onFocus = $("#" + id + validateSettings.onFocus.container);
var _succeed = $("#" + id + validateSettings.succeed.container);
var _isNull = $("#" + id + validateSettings.isNull.container);
var _error = $("#" + id + validateSettings.error.container);
if (def == true) {
var str = ele.val();
var tag = ele.attr("sta");
if (str == "" || str == "-1") {
validateSettings.isNull.run({
prompts: option,
element: ele,
isNullEle: _isNull,
succeedEle: _succeed
}, option.isNull);
} else if (tag == 1 || tag == 2) {
return;
} else {
callback({
prompts: option,
element: ele,
value: str,
errorEle: _error,
succeedEle: _succeed
});
}
} else {
if (typeof def == "string") {
ele.val(def);
}
if (type == "checkbox" || type == "radio") {
if (ele.attr("checked") == true) {
ele.attr("sta", validateSettings.succeed.state);
}
}
switch (type) {
case "text":
case "password":
ele.bind("focus", function () {
var str = ele.val();
if (str == def) {
ele.val("");
}
validateSettings.onFocus.run({
prompts: option,
element: ele,
value: str,
onFocusEle: _onFocus,
succeedEle: _succeed
}, option.onFocus, option.onFocusExpand);
})
.bind("blur", function () {
var str = ele.val();
if (str == "") {
ele.val(def);
}
if (validateRules.isNull(str)) {
validateSettings.isNull.run({
prompts: option,
element: ele,
value: str,
isNullEle: _isNull,
succeedEle: _succeed
}, "");
} else {
callback({
prompts: option,
element: ele,
value: str,
errorEle: _error,
isNullEle: _isNull,
succeedEle: _succeed
});
}
});
break;
default:
if (rel && rel == "select") {
ele.bind("change", function () {
var str = ele.val();
callback({
prompts: option,
element: ele,
value: str,
errorEle: _error,
isNullEle: _isNull,
succeedEle: _succeed
});
})
} else {
ele.bind("click", function () {
callback({
prompts: option,
element: ele,
errorEle: _error,
isNullEle: _isNull,
succeedEle: _succeed
});
})
}
break;
}
}
}
})(jQuery);
//配置
var validateSettings = {
onFocus: {
state: null,
container: "_error",
style: "focus",
run: function (option, str, expands) {
if (!validateRules.checkType(option.element)) {
option.element.removeClass(validateSettings.INPUT_style2).addClass(validateSettings.INPUT_style1);
}
option.succeedEle.removeClass(validateSettings.succeed.style);
option.onFocusEle.removeClass().addClass(validateSettings.onFocus.style).html(str);
if (expands) {
expands();
}
}
},
isNull: {
state: 0,
container: "_error",
style: "null",
run: function (option, str) {
option.element.attr("sta", 0);
if (!validateRules.checkType(option.element)) {
if (str == "") {
option.element.removeClass(validateSettings.INPUT_style2).removeClass(validateSettings.INPUT_style1);
} else {
option.element.removeClass(validateSettings.INPUT_style1).addClass(validateSettings.INPUT_style2);
}
}
option.succeedEle.removeClass(validateSettings.succeed.style);
if (str == "") {
option.isNullEle.removeClass().addClass(validateSettings.isNull.style).html(str);
} else {
option.isNullEle.removeClass().addClass(validateSettings.error.style).html(str);
}
}
},
error: {
state: 1,
container: "_error",
style: "error",
run: function (option, str) {
option.element.attr("sta", 1);
if (!validateRules.checkType(option.element)) {
option.element.removeClass(validateSettings.INPUT_style1).addClass(validateSettings.INPUT_style2);
}
option.succeedEle.removeClass(validateSettings.succeed.style);
option.errorEle.removeClass().addClass(validateSettings.error.style).html(str);
}
},
succeed: {
state: 2,
container: "_succeed",
style: "succeed",
run: function (option) {
option.element.attr("sta", 2);
option.errorEle.empty();
if (!validateRules.checkType(option.element)) {
option.element.removeClass(validateSettings.INPUT_style1).removeClass(validateSettings.INPUT_style2);
}
option.succeedEle.addClass(validateSettings.succeed.style);
option.errorEle.removeClass();
}
},
INPUT_style1: "highlight1",
INPUT_style2: "highlight2"
}
//验证规则
var validateRules = {
isNull: function (str) {
return (str == "" || typeof str != "string");
},
betweenLength: function (str, _min, _max) {
return (str.length >= _min && str.length <= _max);
},
isUid: function (str) {
return new RegExp(validateRegExp.username).test(str);
},
fullNumberName: function (str) {
return new RegExp(validateRegExp.fullNumber).test(str);
},
isPwd: function (str) {
return /^.*([\W_a-zA-z0-9-])+.*$/i.test(str);
},
isPwdRepeat: function (str1, str2) {
return (str1 == str2);
},
isEmail: function (str) {
return new RegExp(validateRegExp.email).test(str);
},
isTel: function (str) {
return new RegExp(validateRegExp.tel).test(str);
},
isMobile: function (str) {
return new RegExp(validateRegExp.mobile).test(str);
},
checkType: function (element) {
return (element.attr("type") == "checkbox" || element.attr("type") == "radio" || element.attr("rel") == "select");
},
isRealName: function (str) {
return new RegExp(validateRegExp.realname).test(str);
},
isCompanyname: function (str) {
return new RegExp(validateRegExp.companyname).test(str);
},
isCompanyaddr: function (str) {
return new RegExp(validateRegExp.companyaddr).test(str);
},
isCompanysite: function (str) {
return new RegExp(validateRegExp.companysite).test(str);
},
simplePwd: function (str) {
// var pin = $("#regName").val();
// if (pin.length > 0) {
// pin = strTrim(pin);
// if (pin == str) {
// return true;
// }
// }
return pwdLevel(str) == 1;
},
weakPwd: function (str) {
for(var i = 0; i < weakPwdArray.length; i++) {
if(weakPwdArray[i] == str) {
return true;
}
}
return false;
}
};
//验证文本
var validatePrompt = {
regName: {
onFocus: "请输入邮箱/用户名/手机号",
succeed: "",
isNull: "请输入邮箱/用户名/手机号",
error: {
beUsed: "该用户名已被使用,请重新输入或使用推荐用户名。如果您是"{1}",请立刻<a href='https://passport.jd.com/uc/login' class='flk13'>登录</a>",
badLength: "用户名长度只能在4-20位字符之间",
badFormat: "用户名只能由中文、英文、数字及“_”、“-”组成",
fullNumberName: "<span>用户名不能是纯数字,请确认输入的是手机号或者重新输入</span>"
},
onFocusExpand: function () {
$("#morePinDiv").removeClass().addClass("intelligent-error hide");
}
},
pwd: {
onFocus: "<span>6-20位字符,可使用字母、数字或符号的组合,不建议使用纯数字,纯字母,纯符号</span>",
succeed: "",
isNull: "请输入密码",
error: {
badLength: "密码长度只能在6-20位字符之间",
badFormat: "密码只能由英文、数字及标点符号组成",
simplePwd: "<span>该密码比较简单,有被盗风险,建议您更改为复杂密码,如字母+数字的组合</span>",
weakPwd: "<span>该密码比较简单,有被盗风险,建议您更改为复杂密码</span>"
},
onFocusExpand: function () {
$("#pwdstrength").hide();
}
},
pwdRepeat: {
onFocus: "请再次输入密码",
succeed: "",
isNull: "请输入密码",
error: {
badLength: "密码长度只能在6-20位字符之间",
badFormat2: "两次输入密码不一致",
badFormat1: "密码只能由英文、数字及标点符号组成"
}
},
mobileCode: {
onFocus: "",
succeed: "",
isNull: "请输入短信验证码",
error: "验证码错误"
},
protocol: {
onFocus: "",
succeed: "",
isNull: "请先阅读并同意《京东用户注册协议》",
error: ""
},
empty: {
onFocus: "",
succeed: "",
isNull: "",
error: ""
}
};
var nameold, morePinOld, emailResult;
var namestate = false;
//回调函数
var validateFunction = {
regName: function (option) {
$("#intelligent-regName").empty().hide();
var regName = option.value;
if (validateRules.isNull(regName) || regName == '邮箱/用户名/手机号') {
option.element.removeClass(validateSettings.INPUT_style2).removeClass(validateSettings.INPUT_style1);
$("#regName_error").removeClass().empty();
return;
}
if (regName.indexOf("@") > -1) {
$("#mobileCodeDiv").removeClass().addClass("item hide");
$("#authcodeDiv").show();
checkEmail(option);
return;
}
if (validateRules.isMobile(regName)) {
checkMobile(option);
return;
}
$("#mobileCodeDiv").removeClass().addClass("item hide");
$("#authcodeDiv").show();
checkPin(option);
},
pwd: function (option) {
var str1 = option.value;
var regName = $("#regName").val();
if ((validateRules.isNull(regName) == false) && (regName != '邮箱/用户名/手机号') && regName == str1) {
$("#pwdstrength").hide();
validateSettings.error.run(option, "<span>您的密码与账户信息太重合,有被盗风险,请换一个密码</span>");
return;
}
var str2 = $("#pwdRepeat").val();
var format = validateRules.isPwd(option.value);
var length = validateRules.betweenLength(option.value, 6, 20);
$("#pwdstrength").hide();
if (!length && format) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else if (!length && !format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
} else if (length && !format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
} else if (validateRules.weakPwd(str1)) {
validateSettings.error.run(option, option.prompts.error.weakPwd);
} else {
validateSettings.succeed.run(option);
validateFunction.pwdstrength();
if (validateRules.simplePwd(str1)) {
$("#pwd_error").removeClass().addClass("focus");
$("#pwd_error").empty().html(option.prompts.error.simplePwd);
return;
}
}
if (str2 == str1) {
$("#pwdRepeat").focus();
}
},
pwdRepeat: function (option) {
var str1 = option.value;
var str2 = $("#pwd").val();
var length = validateRules.betweenLength(option.value, 6, 20);
var format2 = validateRules.isPwdRepeat(str1, str2);
var format1 = validateRules.isPwd(str1);
if (!length) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else {
if (!format1) {
validateSettings.error.run(option, option.prompts.error.badFormat1);
} else {
if (!format2) {
validateSettings.error.run(option, option.prompts.error.badFormat2);
}
else {
validateSettings.succeed.run(option);
}
}
}
},
mobileCode: function (option) {
var bool = validateRules.isNull(option.value);
if (bool) {
validateSettings.error.run(option, option.prompts.error);
return;
} else {
validateSettings.succeed.run(option);
}
},
protocol: function (option) {
if (option.element.attr("checked") == true) {
option.element.attr("sta", validateSettings.succeed.state);
option.errorEle.html("");
} else {
option.element.attr("sta", validateSettings.isNull.state);
option.succeedEle.removeClass(validateSettings.succeed.style);
}
},
pwdstrength: function () {
var element = $("#pwdstrength");
var value = $("#pwd").val();
if (value.length >= 6 && validateRules.isPwd(value)) {
$("#pwd_error").removeClass('focus');
$("#pwd_error").empty();
element.show();
var level = pwdLevel(value);
switch (level) {
case 1:
element.removeClass().addClass("strengthA");
break;
case 2:
element.removeClass().addClass("strengthB");
break;
case 3:
element.removeClass().addClass("strengthC");
break;
default:
break;
}
} else {
element.hide();
}
},
checkGroup: function (elements) {
for (var i = 0; i < elements.length; i++) {
if (elements[i].checked) {
return true;
}
}
return false;
},
checkSelectGroup: function (elements) {
for (var i = 0; i < elements.length; i++) {
if (elements[i].value == -1) {
return false;
}
}
return true;
},
FORM_submit: function (elements) {
var bool = true;
for (var i = 0; i < elements.length; i++) {
if ($(elements[i]).attr("sta") == 2) {
bool = true;
} else {
bool = false;
break;
}
}
return bool;
}
};
var checkpin = -10;
function checkPin(option) {
var pin = option.value;
if (!validateRules.betweenLength(pin.replace(/[^\x00-\xff]/g, "**"), 4, 20)) {
validateSettings.error.run(option, option.prompts.error.badLength);
return false;
}
if (!validateRules.isUid(pin)) {
validateSettings.error.run(option, option.prompts.error.badFormat);
return;
}
if (validateRules.fullNumberName(pin)) {
validateSettings.error.run(option, option.prompts.error.fullNumberName);
return;
}
if (!namestate || nameold != pin) {
if (nameold != pin) {
nameold = pin;
option.errorEle.html("<em style='color:#999'>检验中……</em>");
$.getJSON("../validate/isPinEngaged?pin=" + escape(pin) + "&r=" + Math.random(), function (date) {
checkpin = date.success;
if (date.success == 0) {
validateSettings.succeed.run(option);
namestate = true;
} else if (date.success == 2) {
validateSettings.error.run(option, "用户名包含了非法词");
namestate = false;
} else {
validateSettings.error.run(option, "<span>" + option.prompts.error.beUsed.replace("{1}", option.value) + "</span>");
namestate = false;
morePinOld = date.morePin;
if (date.morePin != null && date.morePin.length > 0) {
var html = ""
for (var i = 0; i < date.morePin.length; i++) {
html += "<div class='item-fore'><input name='morePinRadio' onclick='selectMe(this);' type='radio' class='radio' value='" + date.morePin[i] + "'/><label>" + date.morePin[i] + "</label></div>"
}
$("#morePinGroom").empty();
$("#morePinGroom").html(html);
$("#morePinDiv").removeClass().addClass("intelligent-error");
}
}
});
} else {
if (checkpin == 2) {
validateSettings.error.run(option, "用户名包含了非法词");
} else {
validateSettings.error.run(option, "<span>" + option.prompts.error.beUsed.replace("{1}", option.value) + "</span>");
if (morePinOld != null && morePinOld.length > 0) {
$("#morePinDiv").removeClass().addClass("intelligent-error");
}
}
namestate = false;
}
} else {
validateSettings.succeed.run(option);
}
}
function selectMe(option) {
$("#morePinDiv").removeClass().addClass("intelligent-error hide");
$("#regName").val(option.value);
$("#regName").blur();
}
function checkEmail(option) {
var email = option.value;
var email = strTrim(option.value);
var format = validateRules.isEmail(email);
var format2 = validateRules.betweenLength(email, 0, 50);
if (!format) {
validateSettings.error.run(option, "邮箱地址不正确,请重新输入");
} else {
if (!format2) {
validateSettings.error.run(option, "邮箱地址长度应在4-50个字符之间");
} else {
if (!namestate || nameold != email) {
if (nameold != email) {
nameold = email;
option.errorEle.html("<em style='color:#999'>检验中……</em>");
$.getJSON("../validate/isEmailEngaged?email=" + escape(option.value) + "&r=" + Math.random(), function (date) {
emailResult = date.success;
if (date.success == 0) {
validateSettings.succeed.run(option);
namestate = true;
if ($("#mail")) {
$("#mail").val(option.value);
}
}
if (date.success == 1) {
validateSettings.error.run(option, "该邮箱已存在,立刻<a class='flk13' href='https://passport.jd.com/uc/login'>登录</a>");
namestate = false;
}
if (date.success == 2) {
validateSettings.error.run(option, "邮箱地址不正确,请重新输入");
namestate = false;
}
if (date.success == 3) {
validateSettings.error.run(option, "<span>中国雅虎邮箱已经停止服务,请您换一个邮箱</span>");
namestate = false;
}
})
}
else {
namestate = false;
if (emailResult == 1) {
validateSettings.error.run(option, "该邮箱已存在,立刻<a class='flk13' href='https://passport.jd.com/uc/login'>登录</a>");
}
if (emailResult == 2) {
validateSettings.error.run(option, "邮箱地址不正确,请重新输入");
}
if (emailResult == 3) {
validateSettings.error.run(option, "<span>中国雅虎邮箱已经停止服务,请您换一个邮箱</span>");
}
}
}
else {
validateSettings.succeed.run(option);
}
}
}
}
function checkMobile(option) {
var mobileValue = option.value;
mobileValue = strTrim(mobileValue);
var isMobile = validateRules.isMobile(mobileValue);
if (!isMobile || mobileValue.length > 11) {
validateSettings.error.run(option, option.prompts.error.badFormat);
} else {
if (!namestate || nameold != option.value) {
if (nameold != option.value) {
nameold = option.value;
option.errorEle.html("<em style='color:#999'>检验中……</em>");
$.getJSON("../validate/isMobileEngaged?mobile=" + option.value + "&r=" + Math.random(), function (date) {
if (date.success == 0) {
validateSettings.succeed.run(option);
$("#mobileCodeDiv").removeClass().addClass("item");
$("#authcodeDiv").hide();
namestate = true;
if ($("#mobile")) {
$("#mobile").val(option.value);
}
} else {
validateSettings.error.run(option, "该手机号已存在,立刻<a class='flk13' href='https://passport.jd.com/uc/login'>登录</a>");
namestate = false;
}
})
} else {
validateSettings.error.run(option, "该手机号已存在,立刻<a class='flk13' href='https://passport.jd.com/uc/login'>登录</a>");
namestate = false;
}
} else {
validateSettings.succeed.run(option);
}
}
}
function sendMobileCode() {
var mobile = $("#regName").val();
if (validateRules.isNull(mobile) || !validateRules.isMobile(mobile)) {
$("#regName_error").html("<span>手机号码格式有误,请输入以13/14/15/17/18开头的11位数字。<span>");
$("#regName_error").removeClass().addClass("error");
// $("#regName").removeClass().addClass("text highlight2");
$("#regName_error").show();
return;
}
if ($("#sendMobileCode").attr("disabled")) {
return;
}
$("#sendMobileCode").attr("disabled", "disabled");
jQuery.ajax({
type: "get",
url: "../notify/mobileCode?mobile=" + $("#regName").val() + "&r=" + Math.random(),
success: function (result) {
if (result) {
var obj = eval(result);
if (obj.rs == 1 || obj.remain) {
$("#mobileCode_error").addClass("hide");
$("#dyMobileButton").html("120秒后重新获取");
if (obj.remain) {
$("#mobileCodeSucMessage").empty().html(obj.remain);
} else {
$("#mobileCodeSucMessage").empty().html("验证码已发送,请查收短信。");
}
setTimeout(countDown, 1000);
$("#sendMobileCode").removeClass().addClass("btn btn-15").attr("disabled", "disabled");
$("#mobileCode").removeAttr("disabled");
}
if (obj.rs == -1) {
$("#regName_error").html("<span>手机号码格式有误,请输入以13/14/15/17/18开头的11位数字。</span>");
$("#regName_error").removeClass().addClass("error");
$("#regName").removeClass().addClass("text highlight2");
$("#sendMobileCode").removeClass().addClass("btn").removeAttr("disabled");
}
if (obj.info) {
mobileCodeError(obj.info);
}
if (obj.rs == -2) {
mobileCodeError("网络繁忙,请稍后重新获取验证码");
}
}
}
});
}
function mobileCodeError(content) {
$("#mobileCode_error").html(content);
$("#mobileCode_error").removeClass().addClass("error");
$("#mobileCode_error").show();
$("#sendMobileCode").removeClass().addClass("btn").removeAttr("disabled");
}
var delayTime = 120;
function countDown() {
delayTime--;
$("#dyMobileButton").html(delayTime + '秒后重新获取');
if (delayTime == 0) {
delayTime = 120;
$("#mobileCodeSucMessage").empty();
$("#dyMobileButton").html("获取短信验证码");
$("#mobileCode_error").addClass("hide");
$("#sendMobileCode").removeClass().addClass("btn").removeAttr("disabled");
} else {
setTimeout(countDown, 1000);
}
}
function strTrim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}
var emailSurfixArray = ['@163.com', '@126.com', '@qq.com', '@sina.com', '@gmail.com', '@sohu.com', '@vip.163.com', '@vip.126.com', '@188.com', '@139.com', '@yeah.net'];
function moreName(event) {
var sval = this.value;
event = event ? event : window.event;
var keyCode = event.keyCode;
var vschool = $('#intelligent-regName');
if (keyCode == 40 || keyCode == 38 || keyCode == 13) {
var tipindex = $("#hnseli").val() == "" ? -1 : $("#hnseli").val();
var fobj;
if (keyCode == 40) {
tipindex++;
if (tipindex == vschool.find("li").length) {
tipindex = 0;
vschool.find("li").eq(vschool.find("li").length - 1).css("background-color", "");
}
fobj = vschool.find("li").eq(tipindex);
vschool.find("li").eq(tipindex - 1).css("background-color", "");
fobj.css("background-color", "#EEEEEE");
$("#regName").val(fobj.html().replace(/<(\S*?)[^>]*>|<.*? \/>/g, ""));
$("#schoolid").val(fobj.attr("value"));
$("#hnseli").val(tipindex);
return;
} else if (keyCode == 38) {
tipindex--;
if (tipindex <= -1) {
tipindex = vschool.find("li").length - 1;
vschool.find("li").eq(0).css("background-color", "");
}
vschool.find("li").eq(tipindex + 1).css("background-color", "");
fobj = vschool.find("li").eq(tipindex);
fobj.css("background-color", "#EEEEEE");
if (fobj.html() != null) {
$("#regName").val(fobj.html().replace(/<(\S*?)[^>]*>|<.*? \/>/g, ""));
$("#schoolid").val(fobj.attr("value"));
}
$("#hnseli").val(tipindex);
return;
} else if (keyCode == 13) {
$("#hnseli").val("-1");
if ($("#regName").val().length >= 1) {
var combinedValue = vschool.find("li").eq(tipindex).html();
if (combinedValue != null) {
$("#regName").val(combinedValue.replace(/<(\S*?)[^>]*>|<.*? \/>/g, ""));
}
vschool.empty().hide();
if ($("#schoolid").val() != "") {
$("#hnschool").val("1");
$("#hnschool").attr("sta", 2);
$("#regName").blur();
} else {
$("#hnschool").val("-1");
$("#hnschool").attr("sta", 0);
$("#regNamel_error").html("");
$("#regName_succeed").removeClass("succeed");
}
return;
}
}
} else {
//hide morePin
$("#morePinDiv").removeClass().addClass("intelligent-error hide");
if (sval != "") {
var userinput = sval;
var oldSval = "";
var pos = sval.indexOf("@");
if (pos >= 0) {
oldSval = sval.substring(0, pos);
}
$("#schoolid").val("");
$("#hnseli").val("-1");
var html = "";
if (/[\u4E00-\u9FA5]/g.test(sval) || sval.indexOf("-") > -1 || sval.indexOf("_") > -1) {
html = "<li>" + sval + "</li>";
} else {
if (oldSval != '') {
sval = oldSval;
}
if (userinput.indexOf("@") == 0) {
sval = "";
}
html = "<li>" + userinput + "</li>";
var partSurfix = initEmailSurfixArray(userinput);
if (partSurfix != null) {
for (var i = 0; i < partSurfix.length; i++) {
html += "<li>" + sval + partSurfix[i] + "</li>";
}
}
}
if (sval.length > 25) {
$('#intelligent-regName').hide();
} else {
$('#intelligent-regName').show();
$('#intelligent-regName').html(html).find("li").mousedown(function () {
$("#regName").val($(this).html());
$("#schoolid").val($(this).attr("value"));
$("#hnseli").val("-1");
});
}
} else {
$('#intelligent-regName').html("").hide();
$("#schoolid").val("");
$("#hnseli").val("-1");
}
}
}
$("#regName").keyup(moreName);
$("#regName").focus(moreName);
function initEmailSurfixArray(str) {
var pos = str.indexOf("@");
if (pos < 0 || pos == (str.length - 1)) {
return emailSurfixArray;
}
var inputSurfix = str.substring(pos, str.length);
var suitableSurfixArray = [];
var j = 0;
for (var i = 0; i < emailSurfixArray.length; i++) {
if (emailSurfixArray[i].indexOf(inputSurfix) == 0) {
suitableSurfixArray[j] = emailSurfixArray[i];
j++;
}
}
return suitableSurfixArray;
}
$("#intelligent-regName li").livequery("mouseover",function () {
var vi = $(this).attr("dex");
var tipindex = $("#hnseli").val() == "" ? -1 : $("#hnseli").val();
if (tipindex <= 0) {
tipindex = 0;
}
$('#intelligent-regName').find("li").eq(tipindex).css("background-color", "");
$(this).css("background-color", "#EEEEEE");
$("#hnseli").val($(this).attr("dex"));
}).livequery("mouseleave", function () {
var tipindex = $("#hnseli").val() == "" ? -1 : $("#hnseli").val();
if (tipindex <= 0) {
tipindex = 0;
}
$(this).css("background-color", "");
$("#hnseli").val("-1");
});
$("#regName").blur(function () {
setTimeout(function () {
if ($("#schoolid").val() == "") {
$("#schoolinput").val("");
$("#hnschool").val("-1");
$("#hnschool").attr("sta", 0);
$("#schoolinput_succeed").removeClass("succeed");
} else {
$("#hnschool").val("1");
$("#hnschool").attr("sta", 2);
$("#schoolinput_error").html("");
$("#schoolinput_succeed").addClass("succeed");
}
$('#intelligent-school').hide().empty();
$("#hnseli").val("-1");
}, 200)
})
/*扩展*/
$.extend(validatePrompt, {
realname: {
onFocus: "2-20位字符,可由中文或英文组成",
succeed: "",
isNull: "请输入联系人姓名",
error: {
badLength: "联系人姓名长度只能在2-20位字符之间",
badFormat: "联系人姓名只能由中文或英文组成"
}
},
department: {
onFocus: "",
succeed: "",
isNull: "请选择联系人所在部门",
error: ""
},
tel: {
onFocus: "<span>请填写联系人常用的电话,以便于我们联系,如:0527-88105500</span>",
succeed: "",
isNull: "请输入联系人固定电话",
error: "电话格式错误,请重新输入"
},
mobile: {
onFocus: "非北京、上海、广州三地客户,请在手机号前加“0”",
succeed: "",
isNull: "",
error: "手机号格式错误,请重新输入"
},
companyname: {
onFocus: "<span>请填写工商局注册的全称。4-40位字符,可由中英文、数字及“_”、“-”、()、()组成</span>",
succeed: "",
isNull: "请输入公司名称",
error: {
badLength: "公司名称长度只能在4-40位字符之间",
badFormat: "<span>公司名称只能由中文、英文、数字及“_”、“-”、()、()组成</span>"
}
},
companyarea: {
onFocus: "请选择公司所在地",
succeed: "",
isNull: "请选择公司所在地",
error: ""
},
companyaddr: {
onFocus: "<span>请详细填写公司经营地址 如:北京市海淀区苏州街20号银丰大厦B座3层</span>",
succeed: "",
isNull: "请输入公司地址",
error: {
badLength: "公司地址长度只能在4-50位字符之间",
badFormat: "<span>公司地址只能由中文、英文、数字及“_”、“-”、()、()、#组成</span>"
}
},
purpose: {
onFocus: "",
succeed: "",
isNull: "请选择购买类型/用途",
error: ""
},
companysite: {
onFocus: "如:http://www.jd.com",
succeed: "",
isNull: "",
error: {
badLength: "公司网址长度只能在80位字符之内",
badFormat: "公司网址格式不正确。应如:http://www.jd.com"
}
},
mail: {
onFocus: "请输入常用的邮箱",
succeed: "",
isNull: "请输入邮箱",
error: {
beUsed: "该邮箱已被使用,请更换其它邮箱",
badFormat: "请输入有效的邮箱地址",
badLength: "您填写的邮箱过长,邮箱地址只能在50个字符以内"
}
}
});
$.extend(validateFunction, {
mail: function (option) {
var format = validateRules.isEmail(option.value);
var format2 = validateRules.betweenLength(option.value, 0, 50);
if (!format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
} else {
if (!format2) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else {
if (!emailstate || emailold != option.value) {
if (emailold != option.value) {
emailold = option.value;
validateSettings.succeed.run(option);
emailstate = true;
}
else {
validateSettings.error.run(option, option.prompts.error.beUsed);
emailstate = false;
}
}
else {
if ($("#email_linker")) {
$("#email_linker").text(option.value);
}
validateSettings.succeed.run(option);
}
}
}
},
realname: function (option) {
var length = validateRules.betweenLength(option.value.replace(/[^\x00-\xff]/g, "**"), 2, 20);
var format = validateRules.isRealName(option.value);
if (!length) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else {
if (!format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
}
else {
validateSettings.succeed.run(option);
}
}
},
department: function (option) {
var bool = (option.value == -1);
if (bool) {
validateSettings.isNull.run(option, "");
}
else {
validateSettings.succeed.run(option);
}
},
tel: function (option) {
var format = validateRules.isTel(option.value);
if (!format) {
validateSettings.error.run(option, option.prompts.error);
}
else {
validateSettings.succeed.run(option);
}
},
mobile: function (option) {
var format = validateRules.isMobile(option.value);
if (!format) {
validateSettings.error.run(option, option.prompts.error);
}
else {
validateSettings.succeed.run(option);
}
},
companyname: function (option) {
var length = validateRules.betweenLength(option.value.replace(/[^\x00-\xff]/g, "**"), 4, 40);
var format = validateRules.isCompanyname(option.value);
if (!length) {
validateSettings.error.run(option, option.prompts.error.badLength);
}
else {
if (!format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
} else {
validateSettings.succeed.run(option);
}
}
},
companyarea: function (option) {
var bool = (option.value == -1);
if (bool) {
validateSettings.isNull.run(option, "");
}
else {
validateSettings.succeed.run(option);
}
},
companyaddr: function (option) {
var length = validateRules.betweenLength(option.value.replace(/[^\x00-\xff]/g, "**"), 4, 50);
var format = validateRules.isCompanyaddr(option.value);
if (!length) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else {
if (!format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
}
else {
validateSettings.succeed.run(option);
}
}
},
purpose: function (option) {
var purpose = $("input:checkbox[@name='purposetype']");
if (validateFunction.checkGroup(purpose)) {
validateSettings.succeed.run(option);
} else {
validateSettings.error.run(option, option.prompts.isNull);
}
},
companysite: function (option) {
var length = validateRules.betweenLength(option.value, 0, 80);
var format = validateRules.isCompanysite(option.value);
if (!length) {
validateSettings.error.run(option, option.prompts.error.badLength);
} else {
if (!format) {
validateSettings.error.run(option, option.prompts.error.badFormat);
}
else {
validateSettings.succeed.run(option);
}
}
},
emRegCompany_validate: function () {
if ($("#mobileCodeDiv").attr("class") == 'item') {
$("#regName").jdValidate(validatePrompt.regName, validateFunction.regName, true);
$("#pwd").jdValidate(validatePrompt.pwd, validateFunction.pwd, true)
$("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat, true);
$("#realname").jdValidate(validatePrompt.realname, validateFunction.realname, true);
$("#department").jdValidate(validatePrompt.department, validateFunction.department, true);
$("#tel").jdValidate(validatePrompt.tel, validateFunction.tel, true);
$("#companyname").jdValidate(validatePrompt.companyname, validateFunction.companyname, true);
$("#hncompanyarea").jdValidate(validatePrompt.companyarea, validateFunction.companyarea, true);
$("#companyaddr").jdValidate(validatePrompt.companyaddr, validateFunction.companyaddr, true);
$("#purpose").jdValidate(validatePrompt.purpose, validateFunction.purpose, true);
$("#mobileCode").jdValidate(validatePrompt.mobileCode, validateFunction.mobileCode, true);
return validateFunction.FORM_submit(["#regName", "#pwd", "#pwdRepeat", "#realname", "#department", "#tel", "#companyname", "#hncompanyarea", "#companyaddr", "#purpose", "#mobileCode"]);
} else {
$("#regName").jdValidate(validatePrompt.regName, validateFunction.regName, true);
$("#pwd").jdValidate(validatePrompt.pwd, validateFunction.pwd, true)
$("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat, true);
$("#realname").jdValidate(validatePrompt.realname, validateFunction.realname, true);
$("#department").jdValidate(validatePrompt.department, validateFunction.department, true);
$("#tel").jdValidate(validatePrompt.tel, validateFunction.tel, true);
$("#companyname").jdValidate(validatePrompt.companyname, validateFunction.companyname, true);
$("#hncompanyarea").jdValidate(validatePrompt.companyarea, validateFunction.companyarea, true);
$("#companyaddr").jdValidate(validatePrompt.companyaddr, validateFunction.companyaddr, true);
$("#purpose").jdValidate(validatePrompt.purpose, validateFunction.purpose, true);
return validateFunction.FORM_submit(["#regName", "#pwd", "#pwdRepeat", "#realname", "#department", "#tel", "#companyname", "#hncompanyarea", "#companyaddr", "#purpose"]);
}
}
});
$("#pwd").bind("keyup",
function () {
validateFunction.pwdstrength();
}).jdValidate(validatePrompt.pwd, validateFunction.pwd)
$("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat);
$("#authcode").jdValidate(validatePrompt.authcode, validateFunction.authcode);
$("#regName").jdValidate(validatePrompt.regName, validateFunction.regName);
$("#realname").jdValidate(validatePrompt.realname, validateFunction.realname);
$("#department").jdValidate(validatePrompt.department, validateFunction.department);
$("#tel").jdValidate(validatePrompt.tel, validateFunction.tel);
$("#mobile").jdValidate(validatePrompt.mobile, validateFunction.mobile);
$("#mail").jdValidate(validatePrompt.mail, validateFunction.mail);
$("#companyname").jdValidate(validatePrompt.companyname, validateFunction.companyname);
$("#hncompanyarea").jdValidate(validatePrompt.companyarea, validateFunction.companyarea);
$("#companyaddr").jdValidate(validatePrompt.companyaddr, validateFunction.companyaddr);
$("#companysite").jdValidate(validatePrompt.companysite, validateFunction.companysite);
$("#mobileCode").jdValidate(validatePrompt.mobileCode, validateFunction.mobileCode);
$("#viewpwd").bind("click", function () {
if ($(this).attr("checked") == true) {
validateFunction.showPassword("text");
$("#o-password").addClass("pwdbg");
} else {
validateFunction.showPassword("password");
$("#o-password").removeClass("pwdbg");
}
});
$("select[@name2='hncompanyarea']").bind("change", function () {
var elements = $("select[@name2='hncompanyarea']");
if (validateFunction.checkSelectGroup(elements)) {
$("#hncompanyarea").val("1");
$("#hncompanyarea").attr("sta", 2);
$("#hncompanyarea_error").html("");
$("#hncompanyarea_error").removeClass();
$("#hncompanyarea_succeed").addClass("succeed");
} else {
$("#hncompanyarea").val("-1");
$("#hncompanyarea").attr("sta", 0);
$("#hncompanyarea_error").html("");
$("#hncompanyarea_succeed").removeClass("succeed");
}
});
$("input:checkbox[@name='purposetype']").bind("click", function () {
var value1 = $("#purpose").val();
var value2 = $(this).val();
if ($(this).attr("checked") == true) {
if (value1.indexOf(value2) == -1) {
$("#purpose").val(value1 + value2);
$("#purpose").attr("sta", 2);
$("#purpose_error").html("");
$("#purpose_error").removeClass();
$("#purpose_succeed").addClass("succeed");
}
} else {
if (value1.indexOf(value2) != -1) {
value1 = value1.replace(value2, "");
$("#purpose").val(value1);
if ($("#purpose").val() == "") {
$("#purpose").attr("sta", 0);
$("#purpose_succeed").removeClass("succeed");
}
}
}
});
function protocolReg() {
$("#closeBox").click();
$("#registsubmit").click();
}
$("#registsubmit").click(function () {
var agreeProtocol = checkReadMe();
var regnameOk = validateRegName();
var flag = validateFunction.emRegCompany_validate() && regnameOk && agreeProtocol;
if (flag) {
$("#registsubmit").attr({ "disabled": "disabled" }).removeClass().addClass("btn-img btn-regist wait-btn");
$.ajax({
type: "POST",
url: "../reg/regService?r=" + Math.random(),
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: $("#formcompany").serialize(),
success: function (result) {
if (result) {
var obj = eval(result);
if (obj.info) {
$("#registsubmit").removeAttr("disabled").removeClass().addClass("btn-img btn-regist");
alert(obj.info);
verc();
}
if (obj.success == true) {
window.location = obj.dispatchUrl;
}
}
}
});
}
})
$(
function () {
refreshAreas(1, 0);
function refreshAreas(level, parentId) {
var myname;
if (level == 1) {
myname = "companycity";
if (parentId == -1) {
$("#companycity").empty();
$("#companycity").append("<option value=\"-1\" selected>请选择</option>");
$("#companycity").css({"width": "auto"});
$("#companyarea").empty();
$("#companyarea").append("<option value=\"-1\" selected>请选择</option>");
$("#companyarea").css({"width": "auto"});
}
}
else {
myname = "companyarea";
if (parentId == -1) {
$("#companyarea").empty();
$("#companyarea").append("<option value=\"-1\" selected>请选择</option>");
$("#companyarea").css({"width": "auto"});
}
}
if (parentId > 0) {
$.getJSON(
"../reg/area?level=" + level + "&parentId=" + parentId + "&r=" + Math.random(),
function (result) {
if (result.Areas != null) {
$("#" + myname).empty();
$("#" + myname).append("<option value=\"-1\" selected>请选择</option>");
for (var i = 0; i < result.Areas.length; i++) {
var area = result.Areas[i];
$("#" + myname).append("<option value=\"" + area.Id + "\">" + area.Name + "</option>");
}
$("#" + myname).css({"width": "Auto"});
}
});
}
}
$("#companyprovince").change(
function () {
$("#hncompanyarea_error").removeClass();
refreshAreas(1, parseInt($(this).val()));
$("#companyarea").empty();
$("#companyarea").append("<option value=\"-1\" selected>请选择</option>");
}
)
$("#companycity").change(
function () {
$("#hncompanyarea_error").removeClass();
refreshAreas(2, parseInt($(this).val()));
});
})
function checkReadMe() {
if ($("#readme").attr("checked") == true) {
$("#protocol_error").removeClass().addClass("error hide");
return true;
} else {
$("#protocol_error").removeClass().addClass("error");
return false;
}
}
function agreeonProtocol() {
if ($("#readme").attr("checked") == true) {
$("#protocol_error").removeClass().addClass("error hide");
return true;
}
}

浙公网安备 33010602011771号