用JavaScript判断日期、数字、整数和特殊字符

本文介绍了一种JavaScript函数LogicalValue,用于验证用户输入的数据类型,包括整数、数字、日期和特定字符串,并提供了多个示例。


(www.Jojoo.net) 2002-1-1 (请双击自动滚屏观看,单击停止,再击..)


如何在用一个程序检测所输入的内容是否合法,以下是本人自己编写的一个程序对日期、数字、整数和特殊字符进行了判断同时还可判断是正数还是负数(对数值类和整数而言)


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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值