如何在用一个程序检测所输入的内容是否合法
以下是本人自己编写的一个程序对日期
数字
整数和特殊字符进行了判断同时还可判断是正数还是负数(对数值类和整数而言)
< script language=javascript>
< !
/**
LogicalValue:用于判断对象的值是否符合条件现已提供的选择有
integer整型还可判断正整型和负整型
number 数值型同样可判断正负
date 日期型可支持以自定义分隔符的日期格式缺省是以´´为分隔符
string 判断一个字符串包括或不包括某些字符
返回值
true或false
参数
ObjStr 对象标识符——对象名
ObjType对象类型(´integer´´number´´date´´string´之一)
其他说明
当对象值为空时则返回错误
Author:PPDJ
例子
example :要求检验输入框text的输入数据是否是整型数据若不是则提示
if (!LogicalValue(´text´´integer´)) alert(´Error: Your must input a integer number´);
example :要求检验输入框text的输入数据是否是正整型数据若不是则提示
if (!LogicalValue(´text´´integer´´+´)) alert(´Error: Your must input a positive integer number´);
example :要求检验输入框text的输入数据是否是负整型数据若不是则提示
if (!LogicalValue(´text´´integer´´´)) alert(´Error: Your must input a negative integer number´);
exmaple :要求检验输入框text的输入数据是否是数值若不是则提示
if (!LogicalValue(´text´´number´)) alert(´Error: Your must input a number´);
exmaple :要求检验输入框text的输入数据是否是正数值若不是则提示
if (!LogicalValue(´text´´number´´+´)) alert(´Error: Your must input a number´);
exmaple :要求检验输入框text的输入数据是否是负数值若不是则提示
if (!LogicalValue(´text´´number´´´)) alert(´Error: Your must input a number´);
example :要求检验输入框text的输入数据是否是日期型若不是则提示
if (!LogicalValue(´text´´date´)) alert(´Error: Your must input a logical date value´);
若它的分隔符为AA是一个变量如常用的´´和´/´则用如下语法
if (!LogicalValue(´text´´date´A)) alert(´Error: Your must input a logical date value´);
或当分隔符为´/´时
if (!LogicalValue(´text´´date´´/´)) alert(´Error: Your must input a logical date value´);
当分隔符为´´时可不要参数´´可带上
example :要求检验输入框text的输入表示颜色的字符串是否合理若不合理则提示
if (!LogicalValue(´text´´string´´ABCDEFabcdef´)) alert(´Error: Your must input a logical color value´);
example :要求检验输入框text的输入表示密码的字符串是否不含´@#$%&^*这些字符若含有则提示
if (!LogicalValue(´text´´string´´´@#$%&^*´false)) alert(´Error: Your password can not contain ´@#$%&^*´);
其中false表示不包含有某些字符true表示必须是哪些字符缺省值为true
*/
function LogicalValue(ObjStrObjType)
{
var str=´´;
if ((ObjStr==null) || (ObjStr==´´) || ObjType==null)
{
alert(´函数LogicalValue缺少参数´);
return false;
}
var obj = documentall(ObjStr);
if (objvalue==´´) return false;
for (var i=;i{
if (str!=´´)
str += ´´;
str += ´arguments[´+i+´]´;
}
str=(str==´´?´objvalue´:´objvalue´+str);
var temp=ObjTypetoLowerCase();
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 = ´´;
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(stringsign)的参数出错 sign为null或或+´);
return false;
}
integer = parseInt(string);
if (isNaN(integer))
{
return false;
}
else if (integertoString()length==stringlength)
{
if ((sign==null) || (sign==´´ && integer<) || (sign==´+´ && integer>))
{
return true;
}
else
return false;
}
else
return false;
}
/**
IsDate: 用于判断一个字符串是否是日期格式的字符串
返回值
true或false
参数
DateString 需要判断的字符串
Dilimeter 日期的分隔符缺省值为´´
Author: PPDJ
sample:
var date = ´´;
if (IsDate(date))
{
alert(´You see the default separator is );
}
date = ´//;
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 (DateStringlength< && DateStringlength>)
return false;
tempArray = DateStringsplit(Dilimeter);
if (tempArraylength!=)
return false;
if (tempArray[]length==)
{
tempy = tempArray[];
tempd = tempArray[];
}
else
{
tempy = tempArray[];
tempd = tempArray[];
}
tempm = tempArray[];
var tDateString = tempy + ´/´+tempm + ´/´+tempd+´ ::´;//加八小时是因为我们处于东八区
var tempDate = new Date(tDateString);
if (isNaN(tempDate))
return false;
if (((tempDategetUTCFullYear())toString()==tempy) && (tempDategetMonth()==parseInt(tempm)) && (tempDategetDate()==parseInt(tempd)))
{
return true;
}
else
{
return false;
}
}
/**
IsNumber: 用于判断一个数字型字符串是否为数值型
还可判断是否是正数或负数返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用是正用´+´负´´不用则表示不作判断
Author: PPDJ
sample:
var a = ´´;
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(stringsign)
{
var number;
if (string==null) return false;
if ((sign!=null) && (sign!=´´) && (sign!=´+´))
{
alert(´IsNumber(stringsign)的参数出错 sign为null或或+´);
return false;
}
number = new Number(string);
if (isNaN(number))
{
return false;
}
else if ((sign==null) || (sign==´´ && number<) || (sign==´+´ && number>))
{
return true;
}
else
return false;
}
/**
SpecialString: 用于判断一个字符串是否含有或不含有某些字符
返回值
true或false
参数
string 需要判断的字符串
compare 比较的字符串(基准字符串)
BelongOrNot true或falsetrue表示string的每一个字符都包含在compare中
false表示string的每一个字符都不包含在compare中
Author: PPDJ
sample:
var str = ´G´;
if (SpecialString(str´´))
{
alert(´Yes All the letter of the string in ´´´);
}
else
{
alert(´No one or more letters of the string not in ´´´);
}
结果执行的是else部分
sample:
var password = ´´;
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(stringcompareBelongOrNot)
{
if ((string==null) || (compare==null) || ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false)))
{
alert(´function SpecialString(stringcompareBelongOrNot)参数错误´);
return false;
}
if (BelongOrNot==null || BelongOrNot==true)
{
for (var i=;i{
if (compareindexOf(stringcharAt(i))==)
return false
}
return true;
}
else
{
for (var i=;i{
if (compareindexOf(stringcharAt(i))!=)
return false
}
return true;
}
}
//>
< /script>