
/*******************************************************
	purpose:	测试是否为日期
	date:		2008-12-5
*/
function isDate(str) {
	var re = /^(\d{4})-(\d{1,2})-(\d{1,2})$/i;
	if (!str.match(re)) return false;	//如果不是yyyy-mm-dd的格式就直接返回false

	var arr = re.exec(str);
	year = parseInt(arr[1], 10);
	month = parseInt(arr[2], 10);
	day = parseInt(arr[3], 10);

	if (month > 12 || month < 1) return false;

	if (day > 31 || day < 1) return false;

	if (month == 4 || month == 6 || month == 9 || month == 11) {
		if (day > 30) return false;
	} else if (month == 2) {
		if (isLeapYear(year)) {
			if (day > 29) return false;
		} else {
			if (day > 28) return false;
		}
	}

	return true;
}




/*******************************************************
	purpose:	测试是否为闰年
	date:		2008-12-5
*/
function isLeapYear(year) {
	if (parseInt(year, 10) < 1) return false;

	if (parseInt(year, 10) % 4 != 0) return false;
	else return parseInt(year, 10) % 100 != 0 || parseInt(year, 10) % 400 == 0;
}






/*******************************************************
	purpose:	测试是否为整数
	date:		2008-12-5
*/
function isInt(str) {
	var re = /^(\+|-)?\d+$/;
	return str.match(re);
}



/*******************************************************
	purpose:	返回当utf-8编码时，字符串保存到mySQL数据库所需用到的长度
	date:		2008-12-5
*/
function dbLen(str) {
	var re = /[^\x00-\xff]/ig;
	return str.replace(re, "000").length;
}





/*******************************************************
	purpose:	测试字符串是否包含非ascii字符
	date:		2008-12-11
*/
function containWideChar(str) {
	var re = /[^\x00-\xff]/ig;
	re.lastIndex = 0;
	return re.test(str);
}






/*******************************************************
	purpose:	测试字符串是否包含指定字符
	date:		2009-4-30
*/
function containChar(str, chr) {
	var re = eval('/' + chr + '/ig');
	re.lastIndex = 0;
	return re.test(str);
}







/*******************************************************
	purpose:	测试字符是否非英文数字字符
	date:		2008-12-11
*/
function isWideChar(chr) {
	var re = /^[^\x00-\xff]$/ig;
	return re.test(chr);
}








/*******************************************************
	purpose:	测试字符串是否email
	date:		2008-12-29
*/
function isEmail(str) {
	var re = /^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+(\.[A-Za-z0-9_\-]+)?$/ig;
	re.lastIndex = 0;
	return re.test(str);
}

