45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:使用JavaScript判断日期、数字和特殊字符的方法

使用JavaScript判断日期、数字和特殊字符的方法

2016-09-09 07:30:34 来源:www.45fan.com 【

使用JavaScript判断日期、数字和特殊字符的方法

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

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

 

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

 

<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<arguments.length;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)的参数出错:/nsign为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==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)的参数出错:/nsign为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<string.length;i++)

{

if (compare.indexOf(string.charAt(i))==-1)

return false

}

return true;

}

else

{

for (var i=0;i<string.length;i++)

{

if (compare.indexOf(string.charAt(i))!=-1)

return false

}

return true;

}

}

//-->

</script>

 

本文地址:http://www.45fan.com/a/question/73869.html
Tags: 日期 JavaScript 判断
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部