﻿//定义正则表达式库 
var PatternsDict = new Object(); 

PatternsDict.Long=/^-?(\d+)$/; 
PatternsDict.Int32=/^-?(\d+)$/; 
PatternsDict.Int16=/^-?(\d+)$/; 
PatternsDict.Single=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.Double=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.Decimal=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.NegativeDecimal=/^-\d+$|^\d*\.\d+$/; 
PatternsDict.PositiveDecimal=/^\d+$|^\d*\.\d+$/; 
PatternsDict.NegativeInt=/^-\d+$/; 
PatternsDict.PositiveInt=/^\d+$/; 
PatternsDict.NotEmpty=/^\S+$/; 
PatternsDict.Email=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; 
PatternsDict.Boolean=/True|False/;
PatternsDict.String=/.*/;
PatternsDict.DateTime= /^(\d{4})(-|\/|年)(0?\d{1}|1[0-2])(-|\/|月)(0?\d{1}|[12]\d{1}|3[01])日?$/; 
PatternsDict.RegName = /^\w{1}[a-zA-Z0-9_]{5,14}$/;
PatternsDict.RegPassword = /[a-zA-Z0-9_]{5,14}$/;
PatternsDict.NonSelect = /[\S]/;
PatternsDict.Number = /^(-|\+)?\d+(\.\d+)?$/;
PatternsDict.Tel = /((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/;
PatternsDict.Mobile = /^(13|15)[0-9]{9}$/; //手机

//指定检验Form的名称，若验证通过则返回true 
function validateForm() 
{ 	
	//debugger;
	var elArr = document.forms(0).elements; // 将表单中的所有元素放入数组 	
	for(var i = 0; i < elArr.length; i++) 
	{ 

		// 对于表单中的每一个元素... 
		
		//检查allownull
		with(elArr[i]) 
		{ 
			var v = elArr[i].getAttribute("allownull"); // 获取其validator属性 
			if(v == "False")
			{
				if(value == "") 
				{
				
					var desc = elArr[i].getAttribute("description");
					if (desc)
					{					
						alert(description + "不能为空"); 
					}
					else
					{
						alert("不能为空");
					}
    
    
					//聚焦 
					//focus(); 
					//选中文本内容 
					if(v.toLowerCase() != "select") 
					{ 
						try{
							select(); 
						}
						catch(e){}
						finally{}
					} 
					return false;
				}
			} 
		}
		
		
		//检查RegEx
		with(elArr[i]) 
		{ 
			var v = elArr[i].getAttribute("regex"); // 获取其validator属性 
			if(v && value != "")
			{
				var thePat = PatternsDict[v];
				//alert(value);				
				var gotIt = thePat.test(value); // 用正则表达式验证elArr[i]的值 
				if(!gotIt) 
				{ 
					//报错 
					var desc = elArr[i].getAttribute("description")
						if (desc)
						{
							alert(description + "的格式不正确!"); 
						}
						else
						{
							alert(" 输入值：" + value + "格式不正确!"); 
						}
					//聚焦 
					//focus(); 
					//选中文本内容 
					try
					{
						if(v.toLowerCase() != "select") 
						{ 
							select(); 
						}
					} 
					catch(e) {
						//print("Outer catch caught " + e);
					}
					finally {
						//print("Outer finally running");
					}

					
					
					return false; 
				} 				
			} 
		}		
		
	}
	
	return true; 
}


