转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
用JavaScript判断日期、数字、整数和特殊字符         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:555 更新时间:2009/4/23 11:21:16
  如何在用一个程序检测所输入的内容是否合法,以下是本人自己编写的一个程序对日期、数字、整数和特殊字符进行了判断同时还可判断是正数还是负数(对数值类和整数而言)

< 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==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)的参数出错: 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;
}
}


//-->
< /script>


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台