CheckDataFunction.js.svn-base
上传用户:liangcc
上传日期:2019-05-24
资源大小:4412k
文件大小:25k
源码类别:
WEB邮件程序
开发平台:
Java
- /*
- nodes:
- 下列函数返回值说明:
- 凡是“Is”开头的函数,如果是"Is"后指明的状态,则返回真,否则为假
- eg. IsNum 如果是数字,返回真
- 某些“Check”开头的函数,如果是"Check"后指明的状态,返回假,否则为真
- 某些则相反,请具体查看函数说明
- eg. CheckEmpty 如果是空,返回假
- 函数名解释:
- 当有重载出现时
- NP 表示没有参数(no parameter)
- 3P,4P 等表示参数个数(3 parameter,4 parameter)
- ***************************************************************
- 函数目录:
- -----------校验输入与工具类--------------------------------------------
- TurnPage() 翻页功能,应用于按钮的ONCLICK和text的onkeypress事件
- ReplaceDoubleQuotes(strValue) 替换双引号为"
- 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等类型的值,而数字则认为是真
- ------------数字类-----------------------------------------
- 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";
- //翻页功能,应用于按钮的ONCLICK和text的onkeypress事件
- //参数: isClick true: 按钮的onclick false: text的onkeypress
- // inputCtl : 输入框对象
- // pageCtl : 储存当前页号的对象
- // maxPageCtl : 储存最大页号的对象 可以为null
- function TurnPage(isClick,inputCtl,pageCtl,maxPageCtl){
- if (!isClick){
- var sr = event.srcElement;
- if (sr.type.toLowerCase()=="text"){
- if (event.keyCode == 13){
- if(!CheckPositiveInt(inputCtl,"页号请输入一个正整数!",false)) {
- event.keyCode=0;
- return false;
- }
- else {
- if (maxPageCtl){
- if (parseInt(inputCtl.value) > parseInt(maxPageCtl.value)){
- alert("选择页数不能大于最大页数!");
- event.keyCode = 0;
- return false;
- }
- }
- pageCtl.value = inputCtl.value;
- document.forms(0).submit();
- }
- }
- }
- } else {
- //是翻页按钮
- if(!CheckPositiveInt(inputCtl,"页号请输入一个正整数!",false))
- return false;
- if (maxPageCtl){
- if (parseInt(inputCtl.value) > parseInt(maxPageCtl.value)){
- alert("选择页数不能大于最大页数!");
- return false;
- }
- }
- pageCtl.value = inputCtl.value;
- document.forms(0).submit();
- }
- }
- //替换双引号为"//
- function ReplaceDoubleQuotes(strValue){
- return strValue.replace('"','"');
- }
- //
- //检查FORM里所有输入控件是否含有非法字符//
- function CheckUnsafeMark(frm)
- {
- for(var i=0;i<frm.length;i++)
- {
- var edit = frm.item(i);
- if ( (!edit.type)|| (edit.type.toLowerCase() != "text"))
- {
- continue;
- }
- else
- {
- 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 else
- }//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(parseFloat(dateObj)+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,"费用请填入金额!",null,2))
- {
- if (!CheckFloatRange(Costctrl,0,900337203685477.5807,"费用金额超出范围!"))
- return false;
- else
- return true;
- }
- else
- return false;
- }
- else
- return true;
- }
- /*判断是否是数字的函数
- 输入:txtctl 输入的文本控件 message 显示的错误信息
- 返回值 :是数字返回true,不是返回false
- floatcount: 小数的最高位数(如果没有该参数,则默认为4位)
- 如: 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;
- }
- /*功能: 将一个日期时间对象转化为字符串:
- date 日期对象
- 返回:形如 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;
- }
- }