用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==nullreturn 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]; 
tempm = tempArray[1];
}
 
else 

tempy 
= tempArray[2]; 
tempd 
= tempArray[1]; 
tempm = tempArray[0];
}
  
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,10)-1&& (tempDate.getDate()==parseInt(tempd,10))) 

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==nullreturn 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
}
 
}
 

/**/ /*
检查用户输入的内容否为数字
*/

function  checkNumber()
{
if(!((window.event.keyCode>=48)&&(window.event.keyCode<=57)))
{
      window.event.keyCode
=0;
      alert(
"对不起,只能输入数字。");
}

}


// --> 
<   / script>

转载于:https://www.cnblogs.com/wudingfeng/articles/1078516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值