<%@ page contentType="text/html; charset=gb2312"%> 用JavaScript判断日期、数字、整数和特殊字符
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

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

< 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>
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
JDOM编程初探
RedHat Jboss进入ESB领域
java面试题大全-代码与编程题
关于Java占用内存的研究
rss在web开发过程中的全方位应用
一篇关于JSF的入门文章
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(9801)
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(5344)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(551)
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(2695)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(8510)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(4732)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号