js1

/*说明
-------------------------------------------------------------------------------------
函数名:InputCheck(InputEle)
InputEle 为要检测的元素,这个元素的class为格式化信息:输入类型|必要性|最小长度|最大长度
返回:message and false or true
格式化信息:
			输入类型:
				txt	1-文本(不能包含非法字符)
				num	2-数字(0123456789)
				val	3-数值(0123456789.)
				tel	4-电话号码(020-83559078)
				mob	5-手机号码(11位0123456789)
				dat	6-日期(YYYY-MM-DD)
				tim	7-时间(HH:MM:SS)
				sel	8-选择(值为-1时表示未选择)
				img 9-图像文件路径
				eml 10-电子邮箱格式
				idc	11-身份证

			必要性:
				y	1-必要
				n 	0-不一定
			最小长度:0
			最大长度:2147483647

eg:<input class="txt|y|0|10" > 表示输入为文本,且是必要的,最小长度为0,最大长度为10
---------------------------------------------------------------------------------
*/

function InputCheck(InputEle){

	var ClassName=new String();//信息格式化:输入类型|必要性|最小长度|最大长度
	var availChar=new String();
	var invalChar=new String();
	var InputValue=new String();
	var alertTitle=new String();
	var i=0;
	try{ClassName=InputEle.myClass;}catch(e){return;}

	if (typeof ClassName == "undefined" || ClassName == null) return true;

	var arr=ClassName.split("|");

	var InputType="txt";    //默认为文本
	var Need="n";		//默认无限制
	var minLen=0;		//默认无限制
	var maxLen=0;		//默认无限制
	var minVal="err";
	var maxVal="err";

	if (InputEle.disabled==true){
		return true ;
	}	

	if (arr.length>0){
		InputType=arr[0];
	}
	if (arr.length>1){
		Need=arr[1];
	}
	if (arr.length>2){
		minLen=arr[2];
	}
	if (arr.length>3){
		maxLen=arr[3];
	}
	if (arr.length>4){
		minVal=arr[4];
	}
	if (arr.length>5){
		maxVal=arr[5];
	}

	InputValue = InputEle.value;
	alertTitle = InputEle.title;

	//必要性检测
	if (Need=="y"){
		if(InputValue.length ==0){
			alert(alertTitle + " 不能为空" );
			try {
			    InputEle.focus();
			    InputEle.select();
			}catch(ex){}
			return false;
		}
	}

	if(InputValue.length>0){//存在值时检测最小长度,最大长度
		if(minLen!=0&&InputValue.length <minLen){
			alert(alertTitle + " 不能小于 " + minLen.toString() +" 位");
			InputEle.focus();
			InputEle.select();
			return false;
		}
		if(maxLen!=0&&InputValue.length >maxLen){
			alert(alertTitle + " 不能大于 " + maxLen.toString() +" 位");
			InputEle.focus();
			InputEle.select();
			return false;
		}
	}

	switch(InputType){//输入类型
	case "txt"://1-文本(不能包含字符"‘%()")
		/*invalChar="=‘[email protected]#$%^&*()";
		for(i=0;i<invalChar.length;i++ ){
			if(InputValue.indexOf(invalChar.substr(i,1))>=0){
				alert (alertTitle + " 不能包含字符 " +invalChar);
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}*/
		return true;

	case "num"://2-数字(0123456789)
		availChar="0123456789";
		for(i=0;i<InputValue.length;i++ ){
			if(availChar.indexOf(InputValue.substr(i,1))<0){
				alert (alertTitle + " 只能由字符 " +availChar +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		return true;

	case "val"://3-数值(0123456789.)
		availChar="0123456789.";
		for(i=0;i<InputValue.length;i++ ){
			if(availChar.indexOf(InputValue.substr(i,1))<0){
				alert (alertTitle + " 只能由字符 " +availChar +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		if(minVal!="err"&&parseFloat(InputValue)<parseFloat(minVal)&&InputValue.length>0){
			alert (alertTitle + " 必须大于" +minVal.toString());
			InputEle.focus();
			InputEle.select();
			return false;
		}
		if(maxVal!="err"&&parseFloat(InputValue)>parseFloat(maxVal)&&InputValue.length>0){
			alert (alertTitle + " 必须小于" +maxVal.toString());
			InputEle.focus();
			InputEle.select();
			return false;
		}
		return true;

	case "tel"://电话号码(020-83559078)
		availChar="0123456789-";
		for(i=0;i<InputValue.length;i++ ){
			if(availChar.indexOf(InputValue.substr(i,1))<0){
				alert (alertTitle + " 只能由字符 " +availChar +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		return true;

	case "mob"://5-手机号码(11位0123456789)
		availChar="0123456789";
		if (InputValue.length==0){return true;}
		if (InputValue.length!=11){
				alert (alertTitle + "只能是11位的数字构成");
				InputEle.focus();
				InputEle.select();
				return false;
		}
		for(i=0;i<InputValue.length;i++ ){
			if(availChar.indexOf(InputValue.substr(i,1))<0){
				alert (alertTitle + "只能是11位的数字构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		return true;

	case "dat"://6-日期(YYYY-MM-DD)
					var FormatFlag=0;
					var ValidFlag=0;
					var Index1=InputValue.indexOf("-");
			       	var Index2=InputValue.lastIndexOf("-");
			       	var ObjYear=InputValue.substring(0,4);
			       	var ObjMonth=1;
			       	var ObjDate=1;
			       	var LastDate = new Date(2002,2,2,0,0,0,0);

					if(InputValue.length!=0)
					{
						if (Index1==4)
			          		{
				  			if (InputValue.length==10 && Index2==7)
				  			{
				   				ObjMonth=InputValue.substring(5,7);
								ObjDate=InputValue.substring(8,10);
								FormatFlag=1;
				  			}

				  			if (InputValue.length==9 && Index2==7)
				  			{
				   				ObjMonth=InputValue.substring(5,7);
								ObjDate=InputValue.substring(8,9);
								FormatFlag=1;
				 			}

				 			if (InputValue.length==9 && Index2==6)
				 			{
				   				ObjMonth=InputValue.substring(5,6);
								ObjDate=InputValue.substring(7,9);
								FormatFlag=1;
				 			}

				 			if (InputValue.length==8 && Index2==6)
				 			{
				   				ObjMonth=InputValue.substring(5,6);
								ObjDate=InputValue.substring(7,8);
								FormatFlag=1;
				 			}
				 		}

						if (FormatFlag!=1 || InputValue.indexOf(".")!=-1)
						{
							ValidFlag=1;
						}    

						if( isNaN(ObjMonth) || ObjMonth>12 || ObjMonth<=0 )
			          	{
							ValidFlag=1;
			          	} 

						LastDate.setYear(ObjYear);
						LastDate.setMonth(ObjMonth);
						LastDate.setDate(0); //Get the last date of the month.       	

						if( isNaN(ObjDate) || ObjDate>LastDate.getDate() || ObjDate<=0 )
			          	{
						ValidFlag=1;
			          	} 

						if( ValidFlag==1 )
			          	{
					    alert ("日期格式为YYYY-MM-DD:日期无效!")
						InputEle.focus();
						InputEle.select();
			            return false;
			          	} 

						if( isNaN(ObjYear) || ObjYear<1753 )
			          	{
			          	alert ("日期格式为YYYY-MM-DD:年份不能小于1753!")
						InputEle.focus();
						InputEle.select();
			            return false;
			          	}
					}
		return true;
	case "tim"://7-时间(HH:MM:SS)
		if (InputValue.length!=0){
			if (InputValue.length!=8){
						alert ("时间格式为HH:MM:SS")
						InputEle.focus();
						InputEle.select();
			            return false;
			}
			if (InputValue.indexOf(":")!=2||InputValue.lastIndexOf(":")!=5 ){
						alert ("时间格式为HH:MM:SS")
						InputEle.focus();
						InputEle.select();
			            return false;
			} 

			var tmp=InputValue.substr(0,2)
			availChar="0123456789";
			for(i=0;i<tmp.length;i++ ){
				if(availChar.indexOf(InputValue.substr(i,1))<0||parseInt(tmp)>24){
					alert ("时间格式为HH:MM:SS")
					InputEle.focus();
					InputEle.select();
					return false;
				}
			}

			tmp=InputValue.substr(3,2)
			for(i=0;i<tmp.length;i++ ){
				if(availChar.indexOf(InputValue.substr(i,1))<0||parseInt(tmp)>60){
					alert ("时间格式为HH:MM:SS")
					InputEle.focus();
					InputEle.select();
					return false;
				}
			}

			tmp=InputValue.substr(6,2)
			for(i=0;i<tmp.length;i++ ){
				if(availChar.indexOf(InputValue.substr(i,1))<0||parseInt(tmp)>60){
					alert ("时间格式为HH:MM:SS")
					InputEle.focus();
					InputEle.select();
					return false;
				}
			}
		}

		return true;

	case "sel"://选择(值为-1时表示未选择)
		if (InputValue==-1){
			alert("必须选择 "+ alertTitle);
			InputEle.focus();
			//InputEle.select();
			return false;
		}
		return true;

	case "img":// 图像文件
		if (InputValue.length==0){
			return true;
		}
		var img=document.createElement("img") ;
			img.src=InputValue ;
		if (img.fileSize<0){//不是有效的图像
			alert(InputValue +"不是有效的图像");
			InputEle.focus();
			InputEle.select();
			return false;
		}
		return true;

	case "eml"://电子邮箱
		if(Need=="n"&&i==0)
	    {
	        return true;
	    }
		var pattern = /^([a-zA-Z0-9_-])+(\.([a-zA-Z0-9_-])+)*@([a-zA-Z0-9_-])+(\.([a-zA-Z0-9_-])+)+$/;
		var flag = pattern.test(InputValue);
		if(!flag) {
			alert(" E - Mail格式不正确!")
			InputEle.focus();
			InputEle.select();
			return false;
		}
		return true;

	case "idc"://身份证
		for(i=0;i<InputValue.length;)
			i++;
		if(i==15)
		{
		availChar="0123456789";
		for(m=0;m<InputValue.length;m++ )
			if(availChar.indexOf(InputValue.substr(m,1))<0)
			{
				alert ("15位"+alertTitle + " 只能由字符 " +availChar +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		else if(i==18)
		{
		availChar1="0123456789xX";
		availChar="0123456789";
		for(m=0;m<17;m++ )
			if(availChar.indexOf(InputValue.substr(m,1))<0)
			{
				alert ("前17位"+alertTitle + " 只能由字符 " +availChar +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		if(availChar1.indexOf(InputValue.substr(17,1))<0)
			{
				alert (alertTitle + " 只能由字符 " +availChar1 +" 构成");
				InputEle.focus();
				InputEle.select();
				return false;
			}
		}
		else
	    {
	        if(Need=="n"&&i==0)
	        {
	            return true;
	        }
		    alert(" 身份证位数不正确!")
		    InputEle.focus();
		    InputEle.select();
		    return false;
		}
		return true;

	}

}

function CheckAllInput(){
	var f;
	for(var i=0;i<document.all.length;i++){
		try{
			f=InputCheck(document.all.item(i));
		}catch(e){}
		if (f==false){
			//event.returnValue=false;
			return false;
		}
	}
	return true;
}

function CheckSubmit(oFrm,sAction,sMethod){
	//oFrm		为所提交From的对象
	//sAction	为所提交From的action
	//sMethod	为所提交From的method
	event.returnValue=false;
	if(CheckAllInput()!=false){
		if (sAction!=""){oFrm.action=sAction;}
		if (sMethod!=""){oFrm.method=sMethod;}
		oFrm.submit();
	}
}
时间: 2024-10-13 20:07:10

js1的相关文章

[JS1] 如何嵌入

1 <html> 2 <head> 3 <title>在HTML文档中嵌入JavaScript代码是如何嵌入到HTML文档中的.</title> 4 <script language="javascript"> 5 <!-- 6 window.defaultStatus="使用HTML标记嵌入JavaScript代码" 7 function getnews() 8 { 9 document.form1

node.js1

node的helloworld是非常的简单. 下载node绿色安装包即可.转至node.exe所在目录——写一个hw.js,然后cmd下执行node hw.js——返回相应结果.. http://www.cnblogs.com/dolphinX/p/3474568.html hw.js的写法? 一定要按照js语法!! 不过,当然的,node提供一些js对象或者说工具,比如, require方法等等通过node提供的功能,我们可以在js中启动web服务器等等等的操作,这就是其功能!! 我们可以对此

学习前端JS-1

1.通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML. JavaScript 能够改变页面中的所有 HTML 元素 JavaScript 能够改变页面中的所有 HTML 属性 JavaScript 能够改变页面中的所有 CSS 样式 JavaScript 能够对页面中的所有事件做出反应 2.查找 HTML 元素 通常,通过 JavaScript,您需要操作 HTML 元素. 为了做到这件事情,您必须首先找到该元素.有三种方法来做这件事: 通过 id 找到 HTM

2015-09-28认识js1

         Javascript  一.特点 1. 区分大小写 2. 弱类型变量,只能用关键字“var" 3.注释 /*….*/ 二. 变量 1.变量通过关键字var声明. 2.var可以同时声明多个变量.-------var girl=”jsaacom”,age=19,male=false: 3. 变量不一定要初始化.---------var people; 三. 变量名称规则 1.首字母必须是(字母.下划线.或者美元符) 2.余下的字母可以是下划线.美元符.任意字母或数字 3.变量名不

backbone.js1.3.3------------------history和router

backbone的router和history对象就是对window.history对象的操作. 学习backbone的router和history之前必须要学习window.history对象.html5给开发者添加了操作history的api. 这里需要了解两个概念: hash:个人理解,hash就是url最后#后面的东西,可以定位到页面的某一个位置 state:是指push到window.history中的对象. history可以在不刷新页面的情况下修改url地址,这里就使用了锚点.通过

js-1

1-什么是js js是Javascript的简称,是一种脚本语言. JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. 它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言, 最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 2-怎么用vs创建: 文件——新建项目——web——空白web应用程序——取名.位置.确定——此时软件会自动生成一个sln文件(解决方案),一解决方案下面

backbone.js1.3.3------------------------view

1 // Backbone.View 2 // ------------- 3 4 // Backbone Views are almost more convention than they are actual code. A View 5 // is simply a JavaScript object that represents a logical chunk of UI in the 6 // DOM. This might be a single item, an entire

js1:根据标签的Id获取value值

例子:<input id="startDate" name="startDate" value="2015-09-14" class="jcDate " /> //法一var val1 = document.getElementsByName("startDate")[0].value; //法二var val2 = document.getElementById("startDate

玩转Node.js-1. 新手上路之CentOS 下安装Node.js开发环境

1. 下载源码.下载源码,你需要在https://nodejs.org/en/download/下载最新的Nodejs版本,本文以v8.9.1为例: cd /usr/local/src/ wget http://nodejs.org/dist/v8.9.1/node-v8.9.1.tar.xz 2.解压文件. tar xvf node-v8.9.1-linux-x64.tar.xz 3.设置node和npm 命令全局有效.进入profile编辑环境变量 cd vim /etc/profile 在