·您的位置: 首页 » 资源教程 » 编程开发 » JavaScript » 用JAVASCRIPT判断日期、数字、整数和特殊字符

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

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

< script language="javascript">
< !--


/**
LogicalValue:用于判断对象的值是否符合条件,现已提供的选择有:
integer:整型,还可判断正整型和负整型
number :数值型,同样可判断正负
date :日期型,可支持以自定义分隔符的日期格式,缺省是以&acute;-&acute;为分隔符
string :判断一个字符串包括或不包括某些字符
返回值:
true或false

参数:
ObjStr :对象标识符――对象名;
ObjType:对象类型(&acute;integer&acute;,&acute;number&acute;,&acute;date&acute;,&acute;string&acute;之一)

其他说明:
当对象值为空时,则返回错误。

Author:PPDJ

例子:
example 1:要求检验输入框text1的输入数据是否是“整型”数据,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;integer&acute;)) alert(&acute;Error: Your must input a integer number&acute;);
example 2:要求检验输入框text1的输入数据是否是“正整型”数据,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;integer&acute;,&acute;+&acute;)) alert(&acute;Error: Your must input a positive integer number&acute;);
example 3:要求检验输入框text1的输入数据是否是“负整型”数据,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;integer&acute;,&acute;-&acute;)) alert(&acute;Error: Your must input a negative integer number&acute;);
exmaple 4:要求检验输入框text1的输入数据是否是数值,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;number&acute;)) alert(&acute;Error: Your must input a number&acute;);
exmaple 5:要求检验输入框text1的输入数据是否是“正”数值,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;number&acute;,&acute;+&acute;)) alert(&acute;Error: Your must input a number&acute;);
exmaple 6:要求检验输入框text1的输入数据是否是“负”数值,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;number&acute;,&acute;-&acute;)) alert(&acute;Error: Your must input a number&acute;);
example 7:要求检验输入框text1的输入数据是否是日期型,若不是,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;date&acute;)) alert(&acute;Error: Your must input a logical date value&acute;);
若它的分隔符为A,“A”是一个变量,如常用的&acute;-&acute;和&acute;/&acute;,则用如下语法
if (!LogicalValue(&acute;text1&acute;,&acute;date&acute;,A)) alert(&acute;Error: Your must input a logical date value&acute;);
或当分隔符为&acute;/&acute;时
if (!LogicalValue(&acute;text1&acute;,&acute;date&acute;,&acute;/&acute;)) alert(&acute;Error: Your must input a logical date value&acute;);
当分隔符为&acute;-&acute;时,可不要参数&acute;-&acute;,可带上
example 8:要求检验输入框text1的输入表示颜色的字符串是否合理,若不合理,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;string&acute;,&acute;0123456789ABCDEFabcdef&acute;)) alert(&acute;Error: Your must input a logical color value&acute;);
example 9:要求检验输入框text1的输入表示密码的字符串是否不含“&acute;"@#$%&^*”这些字符,若含有,则提示
if (!LogicalValue(&acute;text1&acute;,&acute;string&acute;,&acute;&acute;"@#$%&^*&acute;,false)) alert(&acute;Error: Your password can not contain &acute;"@#$%&^*&acute;);
其中false表示不包含有某些字符,true表示必须是哪些字符,缺省值为true
*/
function LogicalValue(ObjStr,ObjType)
{
var str=&acute;&acute;;
if ((ObjStr==null) (ObjStr==&acute;&acute;) ObjType==null)
{
alert(&acute;函数LogicalValue缺少参数&acute;);
return false;
}
var obj = document.all(ObjStr);
if (obj.value==&acute;&acute;) return false;
for (var i=2;i{
if (str!=&acute;&acute;)
str += &acute;,&acute;;
str += &acute;arguments[&acute;+i+&acute;]&acute;;
}
str=(str==&acute;&acute;?&acute;obj.value&acute;:&acute;obj.value,&acute;+str);
var temp=ObjType.toLowerCase();
if (temp==&acute;integer&acute;)
{
return eval(&acute;IsInteger(&acute;+str+&acute;)&acute;);
}
else if (temp==&acute;number&acute;)
{
return eval(&acute;IsNumber(&acute;+str+&acute;)&acute;);
}
else if (temp==&acute;string&acute;)
{
return eval(&acute;SpecialString(&acute;+str+&acute;)&acute;);
}
else if (temp==&acute;date&acute;)
{
return eval(&acute;IsDate(&acute;+str+&acute;)&acute;);
}
else
{
alert(&acute;"&acute;+temp+&acute;"类型在现在版本中未提供&acute;);
return false;
}
}

/**
IsInteger: 用于判断一个数字型字符串是否为整形,
还可判断是否是正整数或负整数,返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用,是正用&acute;+&acute;,负&acute;-&acute;,不用则表示不作判断
Author: PPDJ
sample:
var a = &acute;123&acute;;
if (IsInteger(a))
{
alert(&acute;a is a integer&acute;);
}
if (IsInteger(a,&acute;+&acute;))
{
alert(a is a positive integer);
}
if (IsInteger(a,&acute;-&acute;))
{
alert(&acute;a is a negative integer&acute;);
}
*/

function IsInteger(string ,sign)
{
var integer;
if ((sign!=null) && (sign!=&acute;-&acute;) && (sign!=&acute;+&acute;))
{
alert(&acute;IsInter(string,sign)的参数出错: sign为null或"-"或"+"&acute;);
return false;
}
integer = parseInt(string);
if (isNaN(integer))
{
return false;
}
else if (integer.toString().length==string.length)
{
if ((sign==null) (sign==&acute;-&acute; && integer<0) (sign==&acute;+&acute; && integer>0))
{
return true;
}
else
return false;
}
else
return false;
}

/**
IsDate: 用于判断一个字符串是否是日期格式的字符串

返回值:
true或false

参数:
DateString: 需要判断的字符串
Dilimeter : 日期的分隔符,缺省值为&acute;-&acute;

Author: PPDJ
sample:
var date = &acute;1999-1-2&acute;;
if (IsDate(date))
{
alert(&acute;You see, the default separator is "-");
}
date = &acute;1999/1/2";
if (IsDate(date,&acute;/&acute;))
{
alert(&acute;The date&acute;s separator is "/");
}
*/

function IsDate(DateString , Dilimeter)
{
if (DateString==null) return false;
if (Dilimeter==&acute;&acute; Dilimeter==null)
Dilimeter = &acute;-&acute;;
var tempy=&acute;&acute;;
var tempm=&acute;&acute;;
var tempd=&acute;&acute;;
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 + &acute;/&acute;+tempm + &acute;/&acute;+tempd+&acute; 8:0:0&acute;;//加八小时是因为我们处于东八区
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: 若要判断是正负数是使用,是正用&acute;+&acute;,负&acute;-&acute;,不用则表示不作判断
Author: PPDJ
sample:
var a = &acute;123&acute;;
if (IsNumber(a))
{
alert(&acute;a is a number&acute;);
}
if (IsNumber(a,&acute;+&acute;))
{
alert(a is a positive number);
}
if (IsNumber(a,&acute;-&acute;))
{
alert(&acute;a is a negative number&acute;);
}
*/

function IsNumber(string,sign)
{
var number;
if (string==null) return false;
if ((sign!=null) && (sign!=&acute;-&acute;) && (sign!=&acute;+&acute;))
{
alert(&acute;IsNumber(string,sign)的参数出错: sign为null或"-"或"+"&acute;);
return false;
}
number = new Number(string);
if (isNaN(number))
{
return false;
}
else if ((sign==null) (sign==&acute;-&acute; && number<0) (sign==&acute;+&acute; && 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 = &acute;123G&acute;;
if (SpecialString(str,&acute;1234567890&acute;))
{
alert(&acute;Yes, All the letter of the string in &acute;1234567890&acute;&acute;);
}
else
{
alert(&acute;No, one or more letters of the string not in &acute;1234567890&acute;&acute;);
}
结果执行的是else部分
sample2:
var password = &acute;1234&acute;;
if (!SpecialString(password,&acute;&acute;"@#$%&acute;,false))
{
alert(&acute;Yes, The password is correct.&acute;);
}
else
{
alert(&acute;No, The password is contain one or more letters of &acute;"@#$%&acute;&acute;);
}
结果执行的是else部分
*/
function SpecialString(string,compare,BelongOrNot)
{
if ((string==null) (compare==null) ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false)))
{
alert(&acute;function SpecialString(string,compare,BelongOrNot)参数错误&acute;);
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>
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1