﻿var regObj = new Object();
//数字
regObj.Num = function(val)
{
    var _reg="^[-]?\\d+[.]?\\d*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//正整数
regObj.AbsInt = function(val)
{
    var _reg="^[0-9]*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//金额
regObj.Money = function(val)
{
    var _reg="^([0-9]|[0-9].[0-9]{0-2}|[1-9][0-9]*.[0-9]{0,2})$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//日期(2009-1-1)
regObj.Dates = function(val)
{
    var reg = /((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))/;
    return reg.test(val);
}
//日期时间(2009-1-1 23:59:59)
regObj.DateTime = function(val)
{
    var reg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/;
    return reg.test(val);
}
//闰年
regObj.LeapYear = function (val) 
{
    if((val % 4 == 0 && val % 100 != 0) || (val % 400 == 0)) {
        return true;
    }
    return false;
}
//网址
regObj.Url = function(val)
{
    var _reg=/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
    return _reg.test(val);
}
//英文
regObj.En = function(val)
{
    var _reg="^[a-zA-Z]*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//中文
regObj.Cn = function(val)
{
    var _reg="^[\u4e00-\u9fa5]*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//中文、字母和下划线
regObj.CnEnUn = function(val)
{
    var _reg="^[a-zA-Z0-9_\u4e00-\u9fa5]*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//字母，数字和下划线
regObj.EnNumUn = function(val)
{
    var _reg="^[a-zA-Z0-9_]*$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//电子邮箱
regObj.Email = function(val)
{
    var reg=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    return reg.test(val);
}
//电话
regObj.Tel = function(val)
{
    var _reg="^([0-9]){2,3}([-]{1}[1-9][0-9]{1,2}){0,1}([-]{1}[1-9][0-9]{5,7}){1}([,]{1}[1-9][0-9]{5,7})*((-){1}[1-9][0-9]{1,4}){0,1}$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//移动手机
regObj.Mobile = function(val)
{
    var _reg="\\d{11}";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//身份证号码
regObj.IdCard  = function(val)
{
    var _reg="^\\d{15}$|^\\d{18}$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//IP地址
regObj.IP  = function(val)
{
    var _reg="^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//IP地址带端口
regObj.IpPort = function(val)
{
    var _reg="^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9]):\d{1,5}?$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//颜色
regObj.Color = function(val) {
    var _reg = "^#[0-9a-fA-F]{6}$";
    var reg = new RegExp(_reg);
    return reg.test(val);
}
//字符长度
regObj.strCount = function (val) {
    var totalCount = 0;
    for (var i = 0; i < val.length; i++) {
        var c = val.charCodeAt(i);
        if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
            totalCount++;
        } else {
            totalCount += 2;
        }
    }
    return totalCount;
}
//字符长度是否超出
regObj.strLen = function (str, size) {    
    return regObj.strCount(str) <= size;
}
//字符长度范围检测
regObj.strLenLimit = function (str,strMin,strMax) {
	return regObj.strCount(str)>=strMin && regObj.strCount(str)<=strMax;
}

//输入字符长度检测
regObj.strInputLen = function (msg, pre, str, max) {
    if (!regObj.strLen(str, max)) {
        msgHint(msg, "对不起，" + pre + "不能超过" + max / 2.0 + "个汉字(略" + max + "个小写字母)。", 3);
        return false;
    } else {
        msgHint(msg, pre + "已输入 <b style=\"color:blue;\">" + regObj.strCount(str) / 2.0 + "</b> 个汉字，最多能输入 <b style=\"color:red;\">" + max / 2.0 + "</b> 个汉字。", 2);
        return true;
    }
}
