登录 注册 发新帖 |
emyjob
武林高手
|
[学习类] 用JavaScript判断日期、数字、整数和特殊字符 断日期、数字、整数和特殊字符-->如何在用一个程序检测所输入的内容是否合法,以下是本人自己编写的一个程序对日期、数字、整数和特殊字符进行了判断同时还可判断是正数还是负数(对数值类和整数而言) < 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{ 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)的参数出错: sign为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)的参数出错: sign为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{ if (compare.indexOf(string.charAt(i))==-1) return false } return true; } else { for (var i=0;i{ if (compare.indexOf(string.charAt(i))!=-1) return false } return true; } } //--> < /script>
#1楼
|
|
发帖时间:2012-03-04 09:19:59 |
回复数:0
|
游客组
|
|