﻿var regexEnum = 
{
	integer:"^-?[1-9]\\d*$",					//整数
	integer1:"^[1-9]\\d*$",					//正整数
	integer2:"^-[1-9]\\d*$",					//负整数
	num:"^([+-]?)\\d*\\.?\\d+$",			//数字
	num1:"^[1-9]\\d*|0$",					//正数（正整数 + 0）
	num2:"^-[1-9]\\d*|0$",					//负数（负整数 + 0）
	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）

	email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
	color:"^[a-fA-F0-9]{6}$",				//颜色
	url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url
	chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
	ascii:"^[\\x00-\\xFF]+$",				//仅ACSII字符
	zipcode:"^\\d{6}$",						//邮编
	mobile:"^(13|15|18)[0-9]{9}$",				//手机
	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地址
	notempty:"^\\S+$",						//非空
	//picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",	//图片
	picture: /(.*)\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$/i,
	//rar:"(.*)\\.(rar|zip|7zip|tgz)$",								//压缩文件
	rar:/(.*)\\.(rar|zip|7zip|tgz)$/i,								
	date:"^(?=\\d)(?:(?!(?:1582(?:\\.|-|\\/)10(?:\\.|-|\\/)(?:0?[5-9]|1[0-4]))|(?:1752(?:\\.|-|\\/)0?9(?:\\.|-|\\/)(?:0?[3-9]|1[0-3])))(?=(?:(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:\\d\\d)(?:[02468][048]|[13579][26]))\\D0?2\\D29)|(?:\\d{4}\\D(?!(?:0?[2469]|11)\\D31)(?!0?2(?:\\.|-|\\/)(?:29|30))))(\\d{4})([-\\/.])(0?\\d|1[012])\\2((?!00)[012]?\\d|3[01])(?:$|(?=\x20\\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\\d|2[0-3])(?::[0-5]\\d){1,2})?$",					//日期
	qq:"^[1-9]*[1-9][0-9]*$",				//QQ号码
	tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
	username:"^\\w+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	letter:"^[A-Za-z]+$",					//字母
	letter_u:"^[A-Z]+$",					//大写字母
	letter_l:"^[a-z]+$",					//小写字母
	idcard:"^[1-9]([0-9]{14}|[0-9]{17})$",	//身份证
	password:"^[A-Za-z0-9_]{6,16}$"         //密码
};
var noSContainValue = -1;
function isCardID(sId){ 
	var iSum=0 ;
	var info="" ;
	if(!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误"; 
	sId=sId.replace(/x$/i,"a"); 
	if(aCity[parseInt(sId.substr(0,2))]==null) return "你的身份证地区非法"; 
	sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2)); 
	var d=new Date(sBirthday.replace(/-/g,"/")) ;
	if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "身份证上的出生日期非法"; 
	for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ;
	if(iSum%11!=1) return "你输入的身份证号非法"; 
	return true;//aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
} 



//短时间，形如 (13:04:06)
function isTime(str)
{
	var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (a == null) {return false}
	if (a[1]>24 || a[3]>60 || a[4]>60)
	{
		return false;
	}
	return true;
}

//短日期，形如 (2003-12-05)
function isDate(str)
{
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1, r[4]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

//长时间，形如 (2003-12-05 13:04:06)
function isDateTime(str)
{
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null) return false; 
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}

/* Begin form验证可以整合 找时间重构重复出现太多 */
//最小长度
function checkLenMinC(value, len)
{
   if (value.length >= len) return true
   else return false;
}
//最大长度
function checkLenMaxC(value, len)
{
   if (value.length <= len) return true
   else return false;
}
//区间
function checkLenMidC(value, lenMin, lenMax)
{
   if ((value.length >= lenMin) && (value.length <= lenMax)) return true
   else return false;
}
//必填
function checkRequired(value)
{
   if ($.trim(value) != "") return true
   else return false;
}
//正则表达式
function checkRegF(value, reg, required)
{
    if (!required)
    {
        if (value == "") return true;
    }
    return new RegExp(reg).test(value);
}
//比较两个字符
function checkConfirm(value1, value2)
{
   if (value1 == value2) return true
   else return false;
}
//数字长度 选中范围
function checkSelectedLenMid(len, lenMin, lenMax)
{
   if ((len >= lenMin) && (len<= lenMax)) return true
   else return false;
}
//------------带提示语-----------------//
//密码(注册)
function checkPasswordErrMess(value1, value2, errID, errMessage, errClass, okClass)
{
    if (!checkConfirm(value1, value2)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//密码
function checkPasswordErr(value1,value2, errID, errMessage)
{
    if (!checkConfirm(value1, value2)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//最小长度(注册)
function checkLenMinCShowErrMess(value, len, errID, errMessage, errMessage, errClass, okClass)
{
    if (!checkLenMinC(value, len)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//最大长度
function checkLenMinCShowErr(value, len, errID, errMessage)
{
    if (!checkLenMinC(value, len)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//最大长度(注册)
function checkLenMaxCShowErrMess(value, len, errID, errMessage, errMessage, errClass, okClass)
{
    if (!checkLenMaxC(value, len)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//最大长度
function checkLenMaxCShowErr(value, len, errID, errMessage)
{
    if (!checkLenMaxC(value, len)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//区间(注册)
function checkLenMidCShowErrMess(value, lenMin, lenMax, errID, errMessage, errClass, okClass)
{
    if (!checkLenMidC(value, lenMin, lenMax)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//区间
function checkLenMidCShowErr(value, lenMin, lenMax, errID, errMessage)
{
    if (!checkLenMidC(value, lenMin, lenMax)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//必填(注册)
function checkRequiredShowErrMess(value, errID, errMessage, errMessage, errClass, okClass)
{
    if (!checkRequired(value)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//必填
function checkRequiredShowErr(value, errID, errMessage)
{
    if (!checkRequired(value)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//正则表达式(注册)
function checkRegShowErrMess(value, reg, required, errID, errMessage, errClass, okClass)
{
    if (!checkRegF(value, reg, required)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//正则表达式
function checkRegShowErr(value, reg, required, errID, errMessage)
{
    if (!checkRegF(value, reg, required)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//ListBox 选中范围(注册)
function checkListBoxLenMidShowErrMess(id, lenMin, lenMax, errID, errMessage, errClass, okClass)
{
    if (!checkSelectedLenMid($("#" + id + " option:selected").length, lenMin, lenMax)){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//ListBox 选中范围
function checkListBoxLenMidShowErr(id, lenMin, lenMax, errID, errMessage)
{
    if (!checkSelectedLenMid($("#" + id + " option:selected").length, lenMin, lenMax)){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//select 选中(注册)
function checkSelectedLenShowErrMess(id, noSContainValue, errID, errMessage, errClass, okClass)
{
    if ((($("#" + id).val() == noSContainValue) && (noSContainValue != "noSContainValue")) ||
          (!checkSelectedLenMid($("#" + id + " option:selected").length, 1, 1))){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//select 选中
function checkSelectedLenShowErr(id, noSContainValue, errID, errMessage)
{
    if ((($("#" + id).val() == noSContainValue) && (noSContainValue != "noSContainValue")) ||
          (!checkSelectedLenMid($("#" + id + " option:selected").length, 1, 1))){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
//check 选中(注册)
function checkChkShowErrMess(name, errID, errMessage, errClass, okClass)
{
    if ($("input[name^='" + name + "']:checked").length == 0){
        showErr(errID, errMessage, errClass);
        return false;
    }
    else {
        showMess(errID, "", okClass);
        return true;
    }
}
//check 选中
function checkChkLenShowErr(name, errID, errMessage)
{
    if ($("input[name^='" + name + "']:checked").length == 0){
        $("#" + errID).html(errMessage);
        $("#" + errID).show();
        return false;
    }
    else {
        $("#" + errID).val("");
        $("#" + errID).hide();
        return true;
    }
}
function showMess(errID, tipMessage, okClass)
{
    $("#" + errID).removeClass();
    $("#" + errID).addClass(okClass);
    $("#" + errID).html(tipMessage);
    $("#" + errID).show();
}
function showErr(errID, tipMessage, errClass)
{
    $("#" + errID).removeClass();
    $("#" + errID).addClass(errClass);
    $("#" + errID).html(tipMessage);
    $("#" + errID).show();
}
function showTipErrMess(errID, tipMessage, errMessClass)
{
    $("#" + errID).removeClass();
    $("#" + errID).addClass(errMessClass);
    $("#" + errID).html(tipMessage);
    $("#" + errID).show();
}
function gotoElement(objID){
   $("html,body").animate({scrollTop: $("#"+ objID).offset().top}, 100); 
}
function gotoDefaultElement(){
   $("html,body").animate({scrollTop: $("#baseGlobleError").offset().top}, 100); 
}
/* Ends form验证可以整合 */
