﻿//正则 验证  
var regexEnum = 
{
	cn_username:"(?!_)(?![0-9])^[-_a-zA-Z0-9\u4e00-\u9fa5]", //用来用户注册。匹配由数字、26个英文字母、中文字符或者下划线组成的字符串
	password:"^[-_a-zA-Z0-9]{6,16}$",
	email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
	mobile:"^(13|15|18)[0-9]{9}$",				//手机
	msn:"^([a-z][a-z0-9\_\.]*[a-z0-9])(@)(([a-z0-9][a-z0-9\-]*[a-z0-9][\.])+(com|cn|net|hk|tw|au|uk|de|tv|info|biz))$",//msn
	telephone:"(^(\d{2,4}[-_－—]?)?\d{3,8}([-_－—]?\d{3,8})?([-_－—]?\d{1,7})?$)|(^0?1[35]\d{9}$)",//固定电话
	tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
	zipcode:"^\\d{6}$",								//邮编
	tel2:"^\\d{7,8}$",								//电话
	telArea:"^\\d{2,4}$",								//电话区号
	qq:"[1-9][0-9]{4,}",								//qq
	realUsername:"^[\u4e00-\u9fa5]{2,4}$", 			//真实姓名 2-4个中文	
	addressee:"^[a-zA-Z\u4e00-\u9fa5]",	//收货人 仅中文和英文
	intege:"^-?[1-9]\\d*$",					//整数
	intege1:"^[1-9]\\d*$",					//正整数
	intege2:"^-[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）
	color:"^[a-fA-F0-9]{6}$",				//颜色
	url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",	//url
	chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
	ascii:"^[\\x00-\\xFF]+$",				//仅ACSII字符
	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)$",	//图片
	rar:"(.*)\\.(rar|zip|7zip|tgz)$",								//压缩文件
	date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",					//日期

	username:"^\\w+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	login_cn_username:"^[-_a-zA-Z0-9\u4e00-\u9fa5]{4,16}$", //用来用户注册。匹配由数字、26个英文字母、中文字符或者下划线组成的字符串
	idcard:"^[1-9]([0-9]{14}|[0-9]{17})$",	//身份证
	letter:"^[A-Za-z]+$",					//字母
	letter_u:"^[A-Z]+$",					//大写字母
	letter_l:"^[a-z]+$" 					//小写字母
}


//用户名
function chk_username(val){

	if(!new RegExp(regexEnum.cn_username).test(val)){
		return false;
	}else{
		var unLen = val.replace(/[^\x00-\xff]/g, "**").length;
		if(unLen <4 || unLen>20){
			return false;
		}else{
			return true;
		}
	}
}

//密码
function chk_password(val){
	if(!new RegExp(regexEnum.password).test(val)){
		return false;	
	}else{
		return true;
	}
}

//确认密码
function chk_password2(val,obj){
	if(!new RegExp(regexEnum.password).test(val)){
		return false;	
	}else{
		if(obj.val() != val){
			return false;
		}else{
			return true;
		}
	}
}

//邮箱
function chk_email(val){
	if(!new RegExp(regexEnum.email).test(val)){
		return false;	
	}else{
		return true;
	}
}

//手机
function chk_mobile(val){
	if(!new RegExp(regexEnum.mobile).test(val)){
		return false;	
	}else{
		return true;
	}
}


//msn
function chk_msn(val){
	if(!new RegExp(regexEnum.msn).test(val)){
		return false;	
	}else{
		return true;
	}
}

//qq
function chk_qq(val){
	if(!new RegExp(regexEnum.qq).test(val)){
		return false;	
	}else{
		return true;
	}
}

//邮编
function chk_zipcode(val){
	if(!new RegExp(regexEnum.zipcode).test(val)){
		return false;	
	}else{
		return true;
	}
}

//固定电话
function chk_telephone(val){
	if(!new RegExp(regexEnum.tel).test(val)){
		return false;	
	}else{
		return true;
	}
}

//真实姓名
function chk_realUsername(val){
	if(!new RegExp(regexEnum.realUsername).test(val)){
		return false;	
	}else{
		return true;
	}
}

//电话
function chk_tel2(val){
	if(!new RegExp(regexEnum.tel2).test(val)){
		return false;	
	}else{
		return true;
	}
}

//电话区号
function chk_telArea(val){
	if(!new RegExp(regexEnum.telArea).test(val)){
		return false;	
	}else{
		return true;
	}
}

//收货人
function chk_addressee(val){

	if(!new RegExp(regexEnum.addressee).test(val)){
		return false;
	}else{
		var unLen = val.replace(/[^\x00-\xff]/g, "**").length;
		if(unLen <4 || unLen>10){
			return false;
		}else{
			return true;
		}
	}
}

function JsonToStr(o) {
	var arr = [];
	var fmt = function(s) {
	if (typeof s == 'object' && s != null) return JsonToStr(s);
	return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
	}
	for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
	return '{' + arr.join(',') + '}';
}
