/*
-------------- 函数检索 --------------
trim函数:						trim() lTrim() rTrim()
校验字符串是否为空:				checkIsEmpty(str)
校验字符串是否为日期型:				checkIsValidDate(str)
校验字符串是否为整型:              checkIsInteger(str)
校验字符串是否为浮点型:				checkIsDouble(str)

-------------- 函数检索 --------------
*/

/*
*去除多余空格函数
*trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格
*用法：
*var str = "  hello ";
*str = str.trim();
*/
String.prototype.trim = function()
{
    return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
    return this.replace(/(^[\s]*)/g, "");
}
String.prototype.rTrim = function()
{
    return this.replace(/([\s]*$)/g, "");
}

/**
*校验字符串是否为空
*返回值：
*如果不为空，返回true
*如果为空，返回false 参考提示信息：输入域不能为空！
*/
function checkIsEmpty(str)
{
    if(str.trim() == "")
        return true;
    else
        return false;
}

/**
*校验字符串是否为日期型
*返回值：
*如果为空，返回true
*如果字串为日期型，返回true
*如果日期不合法，返回false 参考提示信息：输入域的时间不合法！（yyyy-MM-dd）
*/
function checkIsValidDate(str)
{
    if(str == "") return true; //如果为空，则通过校验
    
	//var pattern = /^(\d{4})-(\d{1,2})-(\d{1,2})$/;
	//var pattern = /^(\d{4})[-\/](\d{1,2})[-\/](\d{1,2})$/;
	//var pattern = /^((((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-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
	var pattern = /^((((1[89]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[89]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[89]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[89]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
	if(!pattern.test(str)) return false;
	return true;

	str=str.replace('/','-');
	str=str.replace('/','-');

    var arrDate = str.split("-");
	var y = parseInt(arrDate[0],10);
	var m = parseInt(arrDate[1],10);
	var d = parseInt(arrDate[2],10);
	//if ((y==1900) && (m==1) && (d==1)) return true;

	//var date =  new Date(y,m-1,d);	
    //if(date.getYear()==y && date.getMonth()==m-1 && date.getDate()==d)
    //    return true;
    //else
    //    return false;
}

/**
*校验字符串是否为整型
*返回值：
*如果为空，返回true
*如果字串全部为数字，返回true
*如果校验不通过，返回false 参考提示信息：输入域必须为数字！
*/
function checkIsInteger(str)
{
    if(str == "") return true; //如果为空，则通过校验
    return (/^(-?)(\d+)$/.test(str));
}

/**
*校验字符串是否为浮点型
*返回值：
*如果为空，返回true
*如果字串为浮点型，返回true
*如果校验不通过，返回false 参考提示信息：输入域不是合法的浮点数！
*/
function checkIsDouble(str)
{
    if(str == "") return true; //如果为空，则通过校验
    if(str.indexOf(".") == -1) //如果是整数，则校验整数的有效性
        return checkIsInteger(str);
    else
        return (/^(\-?)(\d+)(.{1})(\d+)$/.test(str));
}

/**
*校验Email是否有效
*返回值：
*如果为空，返回true
*如果校验不通过，返回false 参考提示信息：输入域不是合法的Email！
*/
function checkIsEmail(str)
{
    return (/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str));
}

/**
*校验是否是有效的字符(字母,数字,-,_)
*返回值：
*如果为空，返回true
*如果校验不通过，返回false 参考提示信息：输入域不是合法的Email！
*/
function checkIsValid(str)
{
    return (/^[\w-]+$/.test(str));
}

