惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - 老枪

sql 修改时间 接近完美的CSS标题、列表溢出隐藏 - 老枪 - 博客园 通过js读取或设置FCKeditor中的值 - 老枪 - 博客园 access查找表是否存在 css 如何设置 某div 里面的所有图片的最大宽度。当加入文章里图片时,图片自动按比例减小。 高素质图片压缩 Asp.net把UTF-8编码转换为GB2312编码 检索COM类工厂中CLSID...”的两个错误的解决方法 检索COM类工厂中CLSID...”的两个错误的解决方法 111111 Lucene基于Java的全文检索引擎简介 sql2005 中文分词 - 老枪 - 博客园 gridview使用大全 ASP.NET程序中常用的三十三种代码 - 老枪 - 博客园 使用System.Web.Mail通过需验证的邮件服务器发送邮件 - 老枪 - 博客园 40种网页常用小技巧(javascript) - 老枪 - 博客园 ASP.NET替换HTML代码<>中的任意代码 - 老枪 - 博客园 SQL SERVER 2005 同步复制技术 网页制作之在线视频播放代码 - 老枪 - 博客园 asp.net2.0中,使用gridview显示新闻标题
常用javascript数据验 - 老枪 - 博客园
老枪 · 2008-05-07 · via 博客园 - 老枪

常用javascript数据验
<script language="javascript">
/*
下列函数返回值说明:
凡是"Is"开头的函数,如果是"Is"后指明的状态,则返回真,否则为假
eg. IsNum 如果是数字,返回真
某些"Check"开头的函数,如果是"Check"后指明的状态,返回假,否则为真
某些则相反,请具体查看函数说明
eg. CheckEmpty 如果是空,返回假
函数名解释:
当有重载出现时
NP 表示没有参数(no parameter)
3P,4P 等表示参数个数(3 parameter,4 parameter)
***************************************************************
函数目录:
-----------校验输入与工具类--------------------------------------------
ReplaceDoubleQuotes(strValue) 替换双引号为&quot;
CheckUnsafeMark(frm)   检查参数frm(form)对象里所有输入控件是否含有非法字符
CheckKey(KeyCode)   检查输入键是否为0~9,a~z(A~Z),Del,-,.,
CheckEmptyNP()   校验触发者的值是否为空
CheckEmpty(CheckCtl,disptext) 校验输入值是否为空
CheckCardNo(CheckCtl,disptext)   校验一个合法的身份证号码(15,18位)
Trim(strSource) 清除左右两边空格
IsEmail(CheckCtl, s) 判断是否是正确的电子邮件地址
IsPhoneNumber(CheckCtl,s) 判断是否是正确的电话号码
IsLetter(CheckCtl,s) 判断是否是字母组合
IsCode(CheckCtl,s) 判断是否是数字编码组合 数字和数字编码的区别:
数字编码允许   000000010 ,不允许诸如: -1290092 ,23.,.3456等类型的值,而数字则认为是真
IsUserName(CheckCtl,s) 判断是否是正确的用户名 用户名只能由小写英文字母、阿拉伯数字和下划线组成!s=null or s="" 时有默认的提示信息
IsImageFile(FilePath) 判断是否文件路径中文件是图像文件,路径可以是url或者file:\
------------数字类-----------------------------------------
Round(i,digit)    取整函数,digid为保留的小数位数
CheckPositiveInt(CheckCtl,disptext,IsCanZero) 校验一个正整数
CheckPositiveIntNP()   校验触发者的值是否为一个正整数
CheckPositiveFloat(CheckCtl,disptext,floatcount) 校验一个合法的大于等于0的浮点数
CheckPositiveFloatNP()   校验触发者的值是否一个合法的大于等于0的浮点数(2位小数)
CheckPositiveFloat4P(CheckCtl,disptext,IsCanZero,floatcount) 校验一个合法的大于0的浮点数,是否可以等于零由参数IsCanZero决定
IsCost(Costctrl) 检查费用输入,小数位为2位,且不能超过SQL Server中数据字段money最大值
IsNum(txtctl,message,floatcount) 校验是否是数字
CheckIntRange(CheckCtl,Min, Max,Msg) 校验一个合法的且在规定范围内的整数
CheckFloatRange(CheckCtl,Min, Max,Msg) 校验一个合法的且在规定范围内的浮点数
-----------日期类-------------------------------------------
GetDateDiff(strStart,strEnd) 计算两个日期间隔天数
CheckYear(strYearInput) 检查输入是否是个有效年份
AddDay(dateObj,days) 把一个日期加上n天
CheckDiffDate(BDateCtl,EDateCtl,Msg) 比较两个日期的大小,如果开始日期大于结束日期,返回false;
DateToStr(dateObj) 将一个日期对象转化为格式yyyy-MM-dd字符串
DateTimeToStr(dateObj) 将一个日期时间对象转化为形如   yyyy-MM-dd HH:mm:ss 的字符串
StrToDate(str)   yyyy-MM-dd 的字符串转化为日期对象:
StrToDateTime(str)    将一个yyyy-MM-dd HH:mm:ss 的字符串转化为日期时间对象
StrToDateTime6P(year,month,day,hour,minute,second) 将一个参数构成的yyyy-MM-dd HH:mm:ss 的字符串转化为日期时间对象
IsDate(str) 判断一个字符串是否为有效的日期并且格式是否正确 YYYY-MM-DD
----------------------------------------------------------
*/
var maxpn=999999999999;
var maxfn=999999999999.9;
var numerrormsg0="请输入0-999999999999之内的数字";
var numerrormsg1="请输入1-999999999999之内的数字";
var overerrormsg="数值超过最大值999999999999";
//替换双引号为&quot;//
function ReplaceDoubleQuotes(strValue)
{
    return strValue.replace('"','&quot;');
}
//
//检查FORM里所有输入控件是否含有非法字符//
function CheckUnsafeMark(frm)
{
    for(var i=0;i<frm.length;i++)
    {
      var edit = frm.item(i);
      var stag = edit.tagName;
    if (edit.type)
     {
      var stype = edit.type;
      if ( (stype.toLowerCase()!="password") && (stype.toLowerCase() != "text") )
      {
       continue;
      }
     }
    else
     {
      var stag = edit.tagName;
      if (stag.toLowerCase()!="textarea")
       {
        continue;
       }
     }
    var s = Trim(edit.value);
    if ((s.indexOf(""")>=0)||(s.indexOf("'")>=0)||(s.indexOf("<")>=0)||(s.indexOf(">")>=0))
    {
      alert("不能输入包含非法字符(如", ', <, >)的文字!");
      edit.select();
      edit.focus();
      return false;
    }
    else
    continue;
   }//end of for
   return true;
}
//检查输入键是否为0~9,a~z(A~Z),Del,-,.,/
//KeyDown 有效
function CheckKey(KeyCode)
{
   Zero=48;
   Nine=57;
   Delete=46;
   Minus=189;
   Dot=190;
   Divide=191;
   Key_a=65;
   Key_z=90;
   _Zero=96;
   _Nine=105;
   _Divide=111;
   _Minus=109;
   _Dot=110;
   return ((KeyCode>=Key_a)&&(KeyCode<=Key_z))||((KeyCode>=Zero)&&(KeyCode<=Nine))||((KeyCode>=_Zero)&&(KeyCode<=_Nine))||(KeyCode==Delete)||(KeyCode==Dot)||(KeyCode==Minus)||(KeyCode==Divide)||(KeyCode==0)||(KeyCode==_Minus)||(KeyCode==_Divide)||(KeyCode==_Dot);
}
//取整函数
//eg. Round(132.123456) 为 132.12
//eg. Round(132.123456,4) 为 132.1234
//eg. Round(132.123456,0) 为 132
function Round(i,digit)
{
if (isNaN(parseFloat(i)))
{
   return '0';
}
if(digit==0)
p=1;
else
{
   if(digit)
   p=Math.pow(10,digit);
   else
   p=100;
}
var mm = Math.round(i*p)/p;
var strTmp = eval("'"+ mm +"'");
var behind = '';
if (strTmp.indexOf('.')>=0)
{
   behind = strTmp.substring(strTmp.indexOf('.')+1,strTmp.length);
   while(digit-behind.length>0)
   {
   behind += '0';
   }
   strTmp = strTmp.substring(0,strTmp.indexOf('.')+1) + behind;
}
else
{
   for(var j=0;j< digit;j++)
   {
    behind += '0';
   }
   if (digit >0)
   {
    strTmp = strTmp + '.' + behind;
   }
}
return strTmp;
}
   /********************************************
功能:自动计算两个日期间隔天数
先要检查开始日期是否大于截止日期,如果大于,返回
参数: start 开始日期字符串 end 截止日期字符串
*/
function GetDateDiff(strStart,strEnd)
{
var start = strStart;
var end = strEnd;
if (StrToDate(start) > StrToDate(end))
{
   alert("起始日期必须小于截止日期!");return;
}
else
{
   var startdate = new Date();
   startdate = StrToDate(start);

   var enddate = new Date();
   enddate =   StrToDate(end);
   var overdue = parseFloat(enddate) - parseFloat(startdate);
   overdue = overdue/(1000*24*60*60);
   return overdue;
}
}

/*
功能: 得到两个日期相差的天数(每一个月按30天,一年360天计算) 该函数不精确
入口参数:
datestartObj: 日期对象1
dateendObj: 日期对象2
返回 dateendObj - datestartObj相差的天数 */
/*function GetDayDiff(datestartObj,dateendObj)
{
var year=dateendObj.getFullYear() - datestartObj.getFullYear();
var month=dateendObj.getMonth() - datestartObj.getMonth();
var day=dateendObj.getDate() - datestartObj.getDate();
return year*12*30+month*30+day;
}*/
/*功能:检查输入是否是个有效年份    */
function CheckYear(strYearInput)
{
var years = strYearInput;
if ( years != ""   && !isNaN(parseInt(years)) )
{
   if (parseInt(years)<=3000   && parseInt(years)>=1900)
   {
   return true;
   }
   else
   {
    alert('请输入合法年份!');return false;
   }
}
else
return true;
}

/*   功能: 把一个日期加上n天
入口参数:
dateObj: 要计算的日期对象
days: 增加的天数
返回   增加后的新日期对象 */
function AddDay(dateObj,days)
{
try
{
   var lngDiff =   parseFloat(days);
   lngDiff = lngDiff*24*60*60*1000;
   dateObj = StrToDate(DateToStr(dateObj));
   var ret = new Date(dateObj.getTime()+lngDiff);
   return ret;
}
catch(x)
{
   return dateObj;
}
}

/* 功能: 校验一个正整数
入口参数:CheckCtl: 要校验的输入框   disptext: 出错显示的信息 IsCanZero : 是否可以为零
返回:   真: 是正整数 假: 不是*/
function CheckPositiveInt(CheckCtl,disptext,IsCanZero)
{
var s=new String(Trim(CheckCtl.value));
var temp=parseInt(s);
var result=true;
if (   (isNaN(temp)) || (temp<0) || ( s.indexOf(".")>=0 )||(temp!=s))
{
   result=false;
}
else if ( (!IsCanZero)&&(temp==0) )
{
   result=false;
}
if   (temp>maxpn)
{
   result=false;
   disptext=overerrormsg;
}
if (!result)
{
   DispMessage(CheckCtl, disptext);
   return false;
}
return true;
}
//不带参数的校验一个正整数
function CheckPositiveIntNP()
{
var o = event.srcElement;
if (o)
{
   if (o.tagName == "INPUT"   && !isNaN(parseFloat(o.value)) )
   return CheckPositiveInt(o,'请输入正整数!',true)
   else
   return true;
}
else
return true;
}
/*功能: 校验一个合法的大于等于0的浮点数
入口参数:
CheckCtl: 要校验的输入框       disptext: 出错显示的信息
floatcount: 小数的最高位数(如果没有该参数,则默认为4位)
如果没有page参数,有floatcunt参数则:把page 置null
如: CheckPositiveFloat(CheckCtl,"出错显示的信息",null,5)     */
function CheckPositiveFloat(CheckCtl,disptext,floatcount)
{
var s=new String(Trim(CheckCtl.value));
temp=parseFloat(s);
var result=true;
if( (isNaN(temp)) || (temp< 0)||(temp!=s) )
{
   result=false;
}
else if (temp>maxfn)
{
   result=false;
   disptext=overerrormsg;
}
else
{
   limitcount=floatcount?floatcount:4;
   var array=s.split(".");
   if (array[1]==null)
   count=-1;
   else
   {
    var str=new String(array[1]);
    count=str.length;
   }
   if (count>limitcount)
   {
    b=confirm("小数位数超过"+limitcount+"位,是否继续?");
    if (b)
    {
     return true;
    }
    else
    {
     CheckCtl.select();
     CheckCtl.focus();
     return false;
    }
   }
}
if (!result)
{
   DispMessage(CheckCtl,disptext);
   return false;
}
return true;
}

//不带参数校验一个合法的大于等于0的浮点数(2位小数)
function CheckPositiveFloatNP()
{
var o = event.srcElement;
if (o)
{
   if (o.tagName == "INPUT"   && !isNaN(parseFloat(o.value)) )
   return CheckPositiveFloat(o,'请输入正确的数目!',2);
   else
   return true;
}
else
   return true;
}

/*
校验一个合法的大于0的浮点数
参数:CheckCtl: 要校验的输入框
   disptext: 出错显示的信息
IsCanZero:是否可以等于零
floatcount: 小数的最高位数(如果没有该参数,则默认为4位)
*/
function CheckPositiveFloat4P(CheckCtl,disptext,IsCanZero,floatcount)
{
if ( CheckPositiveFloat(CheckCtl,disptext,floatcount) )
{
   if ( (parseFloat(CheckCtl.value)==0) &&(!IsCanZero) )
   {
    DispMessage(CheckCtl,disptext);
    return false;
   }
   else return true;
}
else
return false;
}

/*
检查费用输入,小数位为2位,且不能超过数据字段money最大值
true: 正确
*/
function IsCost(Costctrl)
{
if (Costctrl.value != "")
{
   if (IsNum(Costctrl,"费用请填入金额!",2))
   {
    if (!CheckFloatRange(Costctrl,0,900337203685477.5807,"费用金额超出范围!"))
    return false;
    else
    return true;
   }
   else
   return false;
}
else
return true;
}

/*判断是否是数字的函数
输入:txtctl    输入的文本控件 message   显示的错误信息
   floatcount: 小数的最高位数(如果没有该参数,则默认为4位)
返回值 :是数字返回true,不是返回false
如: IsNum(txtctl,"出错显示的信息",5)   */
function IsNum(txtctl,message,floatcount)
{
var s=new String(Trim(txtctl.value));
var result=true;
var num=Number(s);
if ( (isNaN(num)) || (s=="") )
{
   result=false;
}
else if (num>maxfn)
{
   message=overerrormsg;
   result=false;
}
else
{
   limitcount=floatcount?floatcount:4;
   var array=s.split(".");
   if (array[1]==null)
    count=-1;
   else
   {
    var str=new String(array[1]);
    count=str.length;
   }
   if (count>limitcount)
   {
    alert("小数位数超过"+limitcount+"位!");
    txtctl.select();
    txtctl.focus();
    return false;
   }
}
if (!result)
{
   DispMessage(txtctl,message);
   return false;
}
return true;
}
/*
功能:检查是否为空,不用任何参数,触发者为Text
*/
function CheckEmptyNP()
{
var CheckCtl = event.srcElement;
if (Trim(CheckCtl.value)=="" )
{
   CheckCtl.focus();
   return false;
}
else
   return true;
}
   /*功能: 校验一个值是否为空
入口参数:CheckCtl: 要校验的输入框 disptext: 出错显示的信息
false:为空
*/
function CheckEmpty(CheckCtl,disptext)
   {
   if (Trim(CheckCtl.value)=="" )
    {
    DispMessage(CheckCtl,disptext);
    return false;
   }
   else
     return true;
}
/*功能: 校验一个合法的且在规定范围内的整数
入口参数:
CheckCtl: 要校验的输入框       Min:   下限
Max:   上限
Msg: 出错显示的信息   */
function CheckIntRange(CheckCtl,Min, Max,Msg)
{
if (!IsNum(CheckCtl,Msg))
   return false;
var s=new String(Trim(CheckCtl.value));
v=parseInt(s);
if   ( (v<Min) || (v>Max) || (s.indexOf(".")>=0))
{
   DispMessage(CheckCtl,Msg);
   return false;
}
return true;
}
/*功能: 校验一个合法的且在规定范围内的浮点数    入口参数:
CheckCtl: 要校验的输入框       Min:   下限
Max:   上限
Msg: 出错显示的信息   */
function CheckFloatRange(CheckCtl,Min, Max,Msg)
{
if (!IsNum(CheckCtl,Msg))
   return false;
v=parseFloat(Trim(CheckCtl.value));
if   ( (v<Min) || (v>Max) )
{
   DispMessage(CheckCtl,Msg);
   return false;
}
return true;
}
/*功能: 校验一个合法的身份证号码(15,18位)
入口参数:
CheckCtl: 要校验的输入框
disptext: 出错显示的信息   */
function CheckCardNo(CheckCtl,disptext)
{
var result=true;
var strvalue=new String(Trim(CheckCtl.value));
if ( strvalue!="" )
{
   num=parseInt(strvalue);
   if (   ( isNaN(num) ) || (num<100000000000000)|| (strvalue.indexOf(".")>=0)||(num!=strvalue) )
    result=false;
   else
   if ( (num>999999999999999)&&(num<100000000000000000) )
    result=false;
   else
   if (num>999999999999999999)
    result=false;
}
if (!result)
{
   DispMessage(CheckCtl,disptext);
}
   return result;
}
//显示信息
function DispMessage(CheckCtl,Msg)
{
   if (Msg!="")
   {
    alert(Msg);
    //CheckCtl.select();
    CheckCtl.focus();
   }
}
/*
去掉空格同VBSCRIPT中的trim
*/
function Trim(strSource)
{
return   strSource.replace(/^s*/,'').replace(/s*$/,'');
}
/*功能: 比较两个日期的大小,如果开始日期大于结束日期,返回false;
入口参数:
BDate:开始日期输入框       EDate:结束日期输入框
Msg: 出错显示的信息   */
function CheckDiffDate(BDate,EDate,Msg)
{
if ( (!CheckEmpty(BDate,"请输入开始时间或日期!")) || (!CheckEmpty(EDate,"请输入结束时间或日期!")) )
   return false;
str = BDate.value;
if(!IsDate(str)){DispMessage(BDate,"开始时间或日期不是有效的日期");return false;}
   aa = str.split("-");
BYear = parseInt(aa[0],10);
BMonth = parseInt(aa[1],10);
BDay = parseInt(aa[2],10);
str = EDate.value;
if(!IsDate(str)){DispMessage(EDate,"结束时间或日期不是有效的日期");return false;}
   bb = str.split("-");
EYear = parseInt(bb[0],10);
EMonth = parseInt(bb[1],10);
EDay = parseInt(bb[2],10);
if(BYear<1900)
{
   DispMessage(BDate,"日期不能小于1900年!");
   return false;
}
if(EYear<1900)
{
   DispMessage(EDate,"日期不能小于1900年!");
   return false;
}
b=(BYear*10000)+(BMonth*100)+BDay;
e=(EYear*10000)+(EMonth*100)+EDay;
if(e==b)
   return true;
else
if(e>b)
   return true;
else
{
   DispMessage(BDate,Msg);
   return false;
}
}
/*
功能: 将一个日期对象转化为格式yyyy-MM-dd字符串:
dateObj 日期对象
*/
function DateToStr(dateObj)
{
var im;
var id;
var paradate = new Date();
paradate = dateObj;
if ((paradate.getMonth()+1)<10)
{
   im = paradate.getMonth()+1;
   im = '0' + im;
}
else
   im = paradate.getMonth()+1;
if ((paradate.getDate())<10)
   id = "0"+paradate.getDate();
else
   id = paradate.getDate();
return   paradate.getFullYear() + "-" + im + "-"+ id;
}

/*功能: 将一个日期时间对象转化为字符串:
dateObj 日期对象
返回:形如   yyyy-MM-dd HH:mm:ss 的字符串
*/
function DateTimeToStr(dateObj)
{
var im;
var id;
var ih;
var iminutes;
var iseconds;
var paradate = new Date();
paradate = dateObj;
if ((paradate.getMonth()+1)<10)
{
   im = paradate.getMonth()+1;
   im = '0' + im;
}
else
   im = paradate.getMonth()+1;
if ((paradate.getDate())<10)
   id = "0"+paradate.getDate();
else
   id = paradate.getDate();
if (paradate.getHours()< 10)
{
   ih = "0" + paradate.getHours();
}
else
   ih = paradate.getHours();
if (paradate.getMinutes()< 10)
{
   iminutes = "0" + paradate.getMinutes();
}
else
   iminutes = paradate.getMinutes();
if (paradate.getSeconds()< 10)
{
   iseconds = "0" + paradate.getSeconds();
}
else
   iseconds = paradate.getSeconds();
var ret =   paradate.getFullYear() + "-" + im + "-"
   + id + " " + ih + ":" + iminutes + ":" + iseconds;
return ret;
}
/*功能: 字符串转化为日期对象:
返回:   date 日期对象
str yyyy-MM-dd 的字符串
*/
function StrToDate(str)
{
var date = new Date();
date = Date.parse(str);
if (isNaN(date))
{
   date = Date.parse(str.replace(/-/g,"/")); // 识别日期格式:YYYY-MM-DD
   if (isNaN(date)) date = 0;
}
date = new Date(date);
return(date);
}
/*功能: 将一个字符串转化为日期时间对象:
返回:   date 日期对象
str yyyy-MM-dd HH:mm:ss 的字符串
*/
function StrToDateTime(str)
{
var datTmp = new Date();
try
{
   var aryTmp = str.split(' ');
   var aryTmpBig = aryTmp[0].split('-');
   var year = aryTmpBig[0];
   var month = aryTmpBig[1];
   var day = aryTmpBig[2];
   var mm =   month;
   if (mm.indexOf('0') == 0)
   {
    mm = mm.substring(1,mm.length);
   }
   var dd = day;
   if (mm=="1"){mm="JAN";}
   if (mm=="2"){mm="FEB";}
   if (mm=="3"){mm="MAR";}
   if (mm=="4"){mm="APR";}
   if (mm=="5"){mm="MAY";}
   if (mm=="6"){mm="JUN";}
   if (mm=="7"){mm="JUL";}
   if (mm=="8"){mm="AUG";}
   if (mm=="9"){mm="SEP";}
   if (mm=="10"){mm="OCT";}
   if (mm=="11"){mm="NOV";}
   if (mm=="12"){mm="DEC";}
   var expdate_string=mm+" "+dd+","+year+" "+aryTmp[1];
   var mii = Date.parse(expdate_string);
   datTmp = new Date(mii);
}
catch(x)
   {alert('日期格式不正确!');}
return datTmp;
}
/*功能: 将字符串转化为日期时间对象:
返回:   date 日期对象
yyyy-MM-dd HH:mm:ss 的字符串
*/
function StrToDateTime6P(year,month,day,hour,minute,second)
{
var datTmp = new Date();
var mm =   month;
if (mm.indexOf('0') == 0)
{
   mm = mm.substring(1,mm.length);
}
var dd = day;
if (mm=="1"){mm="JAN";}
if (mm=="2"){mm="FEB";}
if (mm=="3"){mm="MAR";}
if (mm=="4"){mm="APR";}
if (mm=="5"){mm="MAY";}
if (mm=="6"){mm="JUN";}
if (mm=="7"){mm="JUL";}
if (mm=="8"){mm="AUG";}
if (mm=="9"){mm="SEP";}
if (mm=="10"){mm="OCT";}
if (mm=="11"){mm="NOV";}
if (mm=="12"){mm="DEC";}
var expdate_string=mm+" "+dd+","+year+" "+hour+":"+minute+":"+second;
try
{
   var mii = Date.parse(expdate_string);
   datTmp = new Date(mii);
}
catch(x)
   {alert('日期格式不正确!');}
return datTmp;
}

/*
判断一个字符串是否为有效的日期并且格式是否正确 YYYY-MM-DD
参数 str:被检查的字串
返回:真或假
*/
function IsDate(str)
{
if (Trim(str)=="") return false;
try
{
   var year = str.substring(0,4);
   if (isNaN(parseInt(year,10)) || (parseInt(year,10)>3000 || parseInt(year,10)<1900) )
   {
    return false;
   }
   if (str.substring(4,5)!="-" || str.substring(7,8)!="-")
   {
    return false;
   }
   var MM = str.substring(5,7);
   var DD = str.substring(8,10);
   if (MM!="01" && MM!="02" && MM!="03" && MM!="04" && MM!="05" && MM!="06" && MM!="07" && MM!="08"&&MM!="09" && MM!="10"&&MM!="11" && MM!="12")
   {
    return false;
   }
   if (isNaN(parseInt(DD,10)))
   {
    return false;
   }
   var date = Date.parse(MM+'/'+DD+'/'+year);
   if (isNaN(date))
   {
    return false;//date = Date.parse(str.replace(/-/g,"/"));
   }
   return true;
}
catch(x)
{
   return false;
}
}
/*
检验正则表达式是否符合
*/
function IsValid(p, t, s)
{
if (p.test(t.value))
   return true;
if (s != null)
{
   t.focus();
   alert(s);
}
return false;
}
/*
判断是否是正确的电子邮件地址
参数: CheckCtl :要检验的输入框 s:出错时需要警告的信息
true:是 false:否
*/
function IsEmail(CheckCtl, s)
{
return IsValid(/^s*w+@w+(.w+)+s*$/i, CheckCtl, s);
}
/*
判断是否是正确的电话号码
电话号码仅允许 数字, ( , ) , -   号
参数: CheckCtl :要检验的输入框 s:出错时需要警告的信息
true:是 false:否
*/
function IsPhoneNumber(CheckCtl,s)
{
try
{
   var t =   Trim(CheckCtl.value);
   if (t==null || t=="" )
   {
    return false;
   }
   t = t.replace("-","");
   t = t.replace("(","");
   t = t.replace(")","");
   if (t.indexOf(".")>=0)
   {
    CheckCtl.focus();
    alert(s);
    return false;
   }
   for(var i=0;i< t.length;i++)
   {
    var c = t.charAt(i);
    if (isNaN(parseInt(c,10)))
    {
     CheckCtl.focus();
     alert(s);
     return false;
    }
   }
   return true;
}
catch(x)
{
   return false;
}
}
/*
判断是否是字母组合
参数: CheckCtl :要检验的输入框 s:出错时需要警告的信息
true:是 false:否
*/
function IsLetter(CheckCtl,s)
{
try
{
   var t =   Trim(CheckCtl.value);
   if (t==null || t=="")
   {
    return false;
   }
   for(var i=0;i<t.length;i++)
   {
    var sss = t.charCodeAt(i);
    if (! (sss>=65 && sss<=90 || sss>=97 && sss<=122) )
    {
     alert(s);
     CheckCtl.focus();
     return false;
    }
   }
   return true;
}
catch(x)
{
   return false;
}
}

/*
判断是否是数字编码组合
数字和数字编码的区别:
数字编码允许   000000010 ,不允许诸如: -1290092 ,23.,.3456等类型的值,而数字则认为是真
参数: CheckCtl :要检验的输入框 s:出错时需要警告的信息
true:是 false:否
*/
function IsCode(CheckCtl,s)
{
try
{
   var t =   Trim(CheckCtl.value);
   if (t==null || t=="")
   {
    return false;
   }
   for(var i=0;i<t.length;i++)
   {
    var sss = t.charCodeAt(i);
    if (! (sss>=48 && sss<=57 ) )
    {
     alert(s);
     CheckCtl.focus();
     return false;
    }
   }
   return true;
}
catch(x)
{
return false;
}
}
/*
判断是否是正确的用户名
用户名只能由小写英文字母、阿拉伯数字和下划线组成
参数: CheckCtl :要检验的输入框
s:出错时需要警告的信息 s=null or s="" 时有默认的提示信息
true:是 false:否
*/
function IsUserName(CheckCtl,s)
{
try
{
   var t =   Trim(CheckCtl.value);
   if (t==null || t=="")
   {
    return false;
   }
   if (s=="" || s==null)
   {
    s = "用户名只能由小写英文字母、阿拉伯数字和下划线组成!";
   }

   if (!IsValid(/[a-z]*|d*|_/,CheckCtl, s))
   {
    return false;
   }
   return true;
}
catch(x)
{
   return false;
}
}
/**********************************
*功能   校验文本框输入内容的非法字符
*入口参数 fld 要校验的输入框
*    invlid 非法字符(串)
*    msg 出错显示的信息
*返回   true 包含非法字符(串)
*    false 不包含
**********************************/
function CheckInvalidString(fld, invalid, msg)
{
if(fld.type == null || (fld.type != 'text' && fld.type != 'password'))
   return false;
var src=fld.value;
if(src == null || src.length == 0 || invalid == null || invalid.length == 0 )
   return false;
if(fld.value.indexOf(invalid) >= 0)
{
   alert(msg);
   return true;
}
return false;
}

posted on 2008-05-07 09:04  老枪  阅读(304)  评论()    收藏  举报