例子: 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; }
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; }
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; } }