var zzfz = zzfz || {};
/*** validate ***/
zzfz.validate = {};
//是否为空
zzfz.validate.isBlank = function(value){
return !value || !$.trim(value);
};
//是否为数字
zzfz.validate.isNumber = function(value){
return /^\d+$/.test(value);
};
//是否是数字+字母组合
zzfz.validate.isNumberAndLetter = function(value){
return /^(?![^a-zA-Z]+$)(?!\D+$)/.test(value);
};
//是否是数字or字母
zzfz.validate.isNumberOrLetter = function(value){
return /^[A-Za-z0-9]+$/.test(value);
};
//长度是否在有效范围内
zzfz.validate.isRangeLength = function(value,min,max,isByte) {
var length = !!isByte ? zzfz.util.getByteCount(value) : value.length;
return (length>=min && length<=max);
};
// 是否是数字或者字母
zzfz.validate.isGraphemeNumber = function(value) {
var SPECIAL_STR = "#~!@%^&*();'\"?><[]{}\\|,:/=-+—“”‘.`$ ";
for (i = 0; i < value.length; i++) {
if (SPECIAL_STR.indexOf(value.charAt(i)) != -1) {
return false;
}
}
return /^[0-9a-zA-Z\u4E00-\u9FA5]{2,14}$/.test(value);
};
// 是否是邮箱格式, TRUE :是邮箱 , FALSE:不是邮箱
zzfz.validate.isEmail = function(value){
var reggg_email = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
return !(!reggg_email.test(value) || value.length<3 || value.length>50)
};
//是否为中文
zzfz.validate.isChinese = function(input){
if(jQuery.trim(input)==""){
return false;
}
var reg1 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}$");
var reg2 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[·][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
var reg3 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[●][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
var reg4 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\s][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
var reg5 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\-][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
if (!(reg1.test(input))&&!(reg2.test(input))&&!(reg3.test(input))&&!(reg4.test(input))&&!(reg5.test(input))) {
return false;
}
return true;
}
//是否为合法的身份证号码
zzfz.validate.isCertNo = function(value) {
if(zzfz.validate.isBlank(value)){
return false;
}
if(!zzfz.validate.isRangeLength(value,15,18,false)) {
return false;
}
var reg_15 = /\d{15}/;
var reg_18 = /\d{17}([0-9]{1}|x|X)/;
var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
value = value.toLowerCase();
if(!( (value.length == 15) ? reg_15.test(value) : reg_18.test(value) )){
return false;
}
birthDate = value.length == 15?"19" + value.substr(6,6):value.substr(6,8);
year = birthDate.substr(0,4);
if(birthDate.substr(4,1) == '0')
month = birthDate.substr(5,1);
else
month = birthDate.substr(4,2);
if(birthDate.substr(6,1) == '0')
day = birthDate.substr(7,1);
else
day = birthDate.substr(6,2);
dd = parseInt(day);
mm = parseInt(month);
yy = parseInt(year);
days = new Date();
gdate = days.getDate();
gmonth = days.getMonth();
gyear18 = days.getFullYear()-18;
if(mm>12 || mm<1 ||dd>31 || dd<1){
return false;
}
if(year % 100 != 0){
if(year % 4 ==0)
monthPerDays[1] = 29;
}else{
if(year % 400 == 0)
monthPerDays[1] = 29;
}
if(monthPerDays[mm - 1] < dd){
return false;
}
if(value.length == 18){
var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var num = 0;
var proof;
for(var i=0; i < 17; i ++){
num = num + value.substr(i,1) * arTemp[i];
}
num = num % 11;
switch(num){
case 0:proof='1';break;
case 1:proof='0';break;
case 2:proof='x';break;
case 3:proof='9';break;
case 4:proof='8';break;
case 5:proof='7';break;
case 6:proof='6';break;
case 7:proof='5';break;
case 8:proof='4';break;
case 9:proof='3';break;
case 10:proof='2';break;
}
if(value.substr(17, 1) != proof){
return false;
}
}
mm = mm -1;
var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
var ageTs = new Date(yy,mm,dd,0,0,0);
if(prevTS18 < ageTs){
return false;
}
return true;
};
//是否为合法的手机号码
zzfz.validate.isMobile = function(value) {
if(! /^[0-9]{11}$/.test( value )){
return false;
}
return (/^(1(([3][0-9])|([5][012356789])|([4][57])|([7][0678])|[8][0123456789]))\d{8}$/.test($.trim(value)));
};
//是否为一个大于0的数字
zzfz.validate.isNumberGreaterThan0 = function(value){
if(!/^[0,9].*$/.test(value))
{
return false;
}
};
//是否为2到8位的中文
zzfz.validate.is2to8chinese = function(value){
if(!/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/.test(value))
{
return false;
}
}
//是否为为6到18位的字符(汉字,英文,数字的组合),(标点符号,特殊字符除外.)
zzfz.validate.is6to18Character = function(value){
if(!/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/.test(value))
{
return false;
}
}
/*** validate ***/
zzfz.validate = {};
//是否为空
zzfz.validate.isBlank = function(value){
return !value || !$.trim(value);
};
//是否为数字
zzfz.validate.isNumber = function(value){
return /^\d+$/.test(value);
};
//是否是数字+字母组合
zzfz.validate.isNumberAndLetter = function(value){
return /^(?![^a-zA-Z]+$)(?!\D+$)/.test(value);
};
//是否是数字or字母
zzfz.validate.isNumberOrLetter = function(value){
return /^[A-Za-z0-9]+$/.test(value);
};
//长度是否在有效范围内
zzfz.validate.isRangeLength = function(value,min,max,isByte) {
var length = !!isByte ? zzfz.util.getByteCount(value) : value.length;
return (length>=min && length<=max);
};
// 是否是数字或者字母
zzfz.validate.isGraphemeNumber = function(value) {
var SPECIAL_STR = "#~!@%^&*();'\"?><[]{}\\|,:/=-+—“”‘.`$ ";
for (i = 0; i < value.length; i++) {
if (SPECIAL_STR.indexOf(value.charAt(i)) != -1) {
return false;
}
}
return /^[0-9a-zA-Z\u4E00-\u9FA5]{2,14}$/.test(value);
};
// 是否是邮箱格式, TRUE :是邮箱 , FALSE:不是邮箱
zzfz.validate.isEmail = function(value){
var reggg_email = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
return !(!reggg_email.test(value) || value.length<3 || value.length>50)
};
//是否为中文
zzfz.validate.isChinese = function(input){
if(jQuery.trim(input)==""){
return false;
}
var reg1 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}$");
var reg2 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[·][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
var reg3 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[●][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
var reg4 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\s][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
var reg5 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\-][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
if (!(reg1.test(input))&&!(reg2.test(input))&&!(reg3.test(input))&&!(reg4.test(input))&&!(reg5.test(input))) {
return false;
}
return true;
}
//是否为合法的身份证号码
zzfz.validate.isCertNo = function(value) {
if(zzfz.validate.isBlank(value)){
return false;
}
if(!zzfz.validate.isRangeLength(value,15,18,false)) {
return false;
}
var reg_15 = /\d{15}/;
var reg_18 = /\d{17}([0-9]{1}|x|X)/;
var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
value = value.toLowerCase();
if(!( (value.length == 15) ? reg_15.test(value) : reg_18.test(value) )){
return false;
}
birthDate = value.length == 15?"19" + value.substr(6,6):value.substr(6,8);
year = birthDate.substr(0,4);
if(birthDate.substr(4,1) == '0')
month = birthDate.substr(5,1);
else
month = birthDate.substr(4,2);
if(birthDate.substr(6,1) == '0')
day = birthDate.substr(7,1);
else
day = birthDate.substr(6,2);
dd = parseInt(day);
mm = parseInt(month);
yy = parseInt(year);
days = new Date();
gdate = days.getDate();
gmonth = days.getMonth();
gyear18 = days.getFullYear()-18;
if(mm>12 || mm<1 ||dd>31 || dd<1){
return false;
}
if(year % 100 != 0){
if(year % 4 ==0)
monthPerDays[1] = 29;
}else{
if(year % 400 == 0)
monthPerDays[1] = 29;
}
if(monthPerDays[mm - 1] < dd){
return false;
}
if(value.length == 18){
var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var num = 0;
var proof;
for(var i=0; i < 17; i ++){
num = num + value.substr(i,1) * arTemp[i];
}
num = num % 11;
switch(num){
case 0:proof='1';break;
case 1:proof='0';break;
case 2:proof='x';break;
case 3:proof='9';break;
case 4:proof='8';break;
case 5:proof='7';break;
case 6:proof='6';break;
case 7:proof='5';break;
case 8:proof='4';break;
case 9:proof='3';break;
case 10:proof='2';break;
}
if(value.substr(17, 1) != proof){
return false;
}
}
mm = mm -1;
var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
var ageTs = new Date(yy,mm,dd,0,0,0);
if(prevTS18 < ageTs){
return false;
}
return true;
};
//是否为合法的手机号码
zzfz.validate.isMobile = function(value) {
if(! /^[0-9]{11}$/.test( value )){
return false;
}
return (/^(1(([3][0-9])|([5][012356789])|([4][57])|([7][0678])|[8][0123456789]))\d{8}$/.test($.trim(value)));
};
//是否为一个大于0的数字
zzfz.validate.isNumberGreaterThan0 = function(value){
if(!/^[0,9].*$/.test(value))
{
return false;
}
};
//是否为2到8位的中文
zzfz.validate.is2to8chinese = function(value){
if(!/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/.test(value))
{
return false;
}
}
//是否为为6到18位的字符(汉字,英文,数字的组合),(标点符号,特殊字符除外.)
zzfz.validate.is6to18Character = function(value){
if(!/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/.test(value))
{
return false;
}
}