使用JavaScript判断日期、数字和特殊字符的方法
用JavaScript判断日期、数字、整数和特殊字符 (www.Jojoo.net)2002-1-1(请双击自动滚屏观看,单击停止,再击..)
如何在用一个程序检测所输入的内容是否合法,以下是本人自己编写的一个程序对日期、数字、整数和特殊字符进行了判断同时还可判断是正数还是负数(对数值类和整数而言)
<script language="javascript">
<!--/** LogicalValue:用于判断对象的值是否符合条件,现已提供的选择有: integer:整型,还可判断正整型和负整型 number :数值型,同样可判断正负 date :日期型,可支持以自定义分隔符的日期格式,缺省是以'-'为分隔符 string :判断一个字符串包括或不包括某些字符 返回值: true或false
参数:
ObjStr :对象标识符——对象名; ObjType:对象类型('integer','number','date','string'之一)其他说明:
当对象值为空时,则返回错误。Author:PPDJ
例子:
example 1:要求检验输入框text1的输入数据是否是“整型”数据,若不是,则提示 if (!LogicalValue('text1','integer')) alert('Error: Your must input a integer number'); example 2:要求检验输入框text1的输入数据是否是“正整型”数据,若不是,则提示 if (!LogicalValue('text1','integer','+')) alert('Error: Your must input a positive integer number'); example 3:要求检验输入框text1的输入数据是否是“负整型”数据,若不是,则提示 if (!LogicalValue('text1','integer','-')) alert('Error: Your must input a negative integer number'); exmaple 4:要求检验输入框text1的输入数据是否是数值,若不是,则提示 if (!LogicalValue('text1','number')) alert('Error: Your must input a number'); exmaple 5:要求检验输入框text1的输入数据是否是“正”数值,若不是,则提示 if (!LogicalValue('text1','number','+')) alert('Error: Your must input a number'); exmaple 6:要求检验输入框text1的输入数据是否是“负”数值,若不是,则提示 if (!LogicalValue('text1','number','-')) alert('Error: Your must input a number'); example 7:要求检验输入框text1的输入数据是否是日期型,若不是,则提示 if (!LogicalValue('text1','date')) alert('Error: Your must input a logical date value'); 若它的分隔符为A,“A”是一个变量,如常用的'-'和'/',则用如下语法 if (!LogicalValue('text1','date',A)) alert('Error: Your must input a logical date value'); 或当分隔符为'/'时 if (!LogicalValue('text1','date','/')) alert('Error: Your must input a logical date value'); 当分隔符为'-'时,可不要参数'-',可带上 example 8:要求检验输入框text1的输入表示颜色的字符串是否合理,若不合理,则提示 if (!LogicalValue('text1','string','0123456789ABCDEFabcdef')) alert('Error: Your must input a logical color value'); example 9:要求检验输入框text1的输入表示密码的字符串是否不含“'"@#$%&^*”这些字符,若含有,则提示 if (!LogicalValue('text1','string','/'"@#$%&^*',false)) alert('Error: Your password can not contain /'"@#$%&^*'); 其中false表示不包含有某些字符,true表示必须是哪些字符,缺省值为true */ function LogicalValue(ObjStr,ObjType) { var str=''; if ((ObjStr==null) || (ObjStr=='') || ObjType==null) { alert('函数LogicalValue缺少参数'); return false; } var obj = document.all(ObjStr); if (obj.value=='') return false; for (var i=2;i<arguments.length;i++) { if (str!='') str += ','; str += 'arguments['+i+']'; } str=(str==''?'obj.value':'obj.value,'+str); var temp=ObjType.toLowerCase(); if (temp=='integer') { return eval('IsInteger('+str+')'); } else if (temp=='number') { return eval('IsNumber('+str+')'); } else if (temp=='string') { return eval('SpecialString('+str+')'); } else if (temp=='date') { return eval('IsDate('+str+')'); } else { alert('"'+temp+'"类型在现在版本中未提供'); return false; } }/**
IsInteger: 用于判断一个数字型字符串是否为整形, 还可判断是否是正整数或负整数,返回值为true或false string: 需要判断的字符串 sign: 若要判断是正负数是使用,是正用'+',负'-',不用则表示不作判断 Author: PPDJ sample: var a = '123'; if (IsInteger(a)) { alert('a is a integer'); } if (IsInteger(a,'+')) { alert(a is a positive integer); } if (IsInteger(a,'-')) { alert('a is a negative integer'); } */function IsInteger(string ,sign)
{ var integer; if ((sign!=null) && (sign!='-') && (sign!='+')) { alert('IsInter(string,sign)的参数出错:/nsign为null或"-"或"+"'); return false; } integer = parseInt(string); if (isNaN(integer)) { return false; } else if (integer.toString().length==string.length) { if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0)) { return true; } else return false; } else return false; }/**
IsDate: 用于判断一个字符串是否是日期格式的字符串返回值:
true或false参数:
DateString: 需要判断的字符串 Dilimeter : 日期的分隔符,缺省值为'-'Author: PPDJ
sample: var date = '1999-1-2'; if (IsDate(date)) { alert('You see, the default separator is "-"); } date = '1999/1/2"; if (IsDate(date,'/')) { alert('The date/'s separator is "/"); } */function IsDate(DateString , Dilimeter)
{ if (DateString==null) return false; if (Dilimeter=='' || Dilimeter==null) Dilimeter = '-'; var tempy=''; var tempm=''; var tempd=''; var tempArray; if (DateString.length<8 && DateString.length>10) return false; tempArray = DateString.split(Dilimeter); if (tempArray.length!=3) return false; if (tempArray[0].length==4) { tempy = tempArray[0]; tempd = tempArray[2]; } else { tempy = tempArray[2]; tempd = tempArray[1]; } tempm = tempArray[1]; var tDateString = tempy + '/'+tempm + '/'+tempd+' 8:0:0';//加八小时是因为我们处于东八区 var tempDate = new Date(tDateString); if (isNaN(tempDate)) return false; if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd))) { return true; } else { return false; } }/**
IsNumber: 用于判断一个数字型字符串是否为数值型, 还可判断是否是正数或负数,返回值为true或false string: 需要判断的字符串 sign: 若要判断是正负数是使用,是正用'+',负'-',不用则表示不作判断 Author: PPDJ sample: var a = '123'; if (IsNumber(a)) { alert('a is a number'); } if (IsNumber(a,'+')) { alert(a is a positive number); } if (IsNumber(a,'-')) { alert('a is a negative number'); } */function IsNumber(string,sign)
{ var number; if (string==null) return false; if ((sign!=null) && (sign!='-') && (sign!='+')) { alert('IsNumber(string,sign)的参数出错:/nsign为null或"-"或"+"'); return false; } number = new Number(string); if (isNaN(number)) { return false; } else if ((sign==null) || (sign=='-' && number<0) || (sign=='+' && number>0)) { return true; } else return false; }
/**
SpecialString: 用于判断一个字符串是否含有或不含有某些字符返回值:
true或false参数:
string : 需要判断的字符串 compare : 比较的字符串(基准字符串) BelongOrNot: true或false,“true”表示string的每一个字符都包含在compare中, “false”表示string的每一个字符都不包含在compare中Author: PPDJ
sample1: var str = '123G'; if (SpecialString(str,'1234567890')) { alert('Yes, All the letter of the string in /'1234567890/''); } else { alert('No, one or more letters of the string not in /'1234567890/''); } 结果执行的是else部分 sample2: var password = '1234'; if (!SpecialString(password,'/'"@#$%',false)) { alert('Yes, The password is correct.'); } else { alert('No, The password is contain one or more letters of /'"@#$%/''); } 结果执行的是else部分 */ function SpecialString(string,compare,BelongOrNot) { if ((string==null) || (compare==null) || ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false))) { alert('function SpecialString(string,compare,BelongOrNot)参数错误'); return false; } if (BelongOrNot==null || BelongOrNot==true) { for (var i=0;i<string.length;i++) { if (compare.indexOf(string.charAt(i))==-1) return false } return true; } else { for (var i=0;i<string.length;i++) { if (compare.indexOf(string.charAt(i))!=-1) return false } return true; } }//--> </script>