求通用的js 验证框架 求通用的js 验证框架要求:参数是控件名称,控件正则表达试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function validateForm() { var i, j, voldObj, vfObj, vObj, vType, vCon, eoldNum=0 ,eNum = 0, eMsg = '', cItemNum = 0, fErrMsg='', re , msg=0; vfObj = new Array(); var args = validateForm.arguments; for (i = 0; i < (args.length-2); i += 3) { vObj = args[i]; vType = args[i+1]; vCon = args[i+2]; this.ClearState(vObj); // 清除红色背景 eoldNum = eNum; if (voldObj!=vObj) { switch (vType) { case 'FitRegEx': re = vCon; if ( vObj.value.search( re ) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的值不符合要求' ); } break; case 'FitRegExnull': if (vObj.value!='') { re = vCon; if ( vObj.value.search( re ) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的值不符合要求' ); } } break; case 'AntiRegEx': re = vCon; if ( vObj.value.search( re ) >= 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的值不符合要求' ); } break; case 'NotBlank': if ( vObj.value == '' ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'没有填写' ); } else { re = /^[\s]+$/; if ( vObj.value.search(re) == 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'没有填写' ); } } break; case 'IsRegID': if ( vObj.value != '' ) { re = /^[a-zA-Z]+[a-zA-Z0-9_.-]*$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'用户名不合法(以字母开头,可以输入字母、数字、下划线、点、减号)!' ); } } break; case 'IsNumeric': if ( isNaN(vObj.value) || vObj.value == '' ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是数字' ); } break; case 'IsInt': re = /^[0-9]+$/; if ( vObj.value.search(re) != 0 || (vObj.value.length>1 && vObj.value.substring(0,1) == 0) ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'必须输入半角数字[0-9]' ); } break; case 'IsNumericNull': if ( isNaN(vObj.value)) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是数字' ); } break; case 'IsIntNull': re = /^[0-9]+$/; if(vObj.value!='') { if ( vObj.value.search(re) != 0 || (vObj.value.length>1 && vObj.value.substring(0,1) == 0) ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'必须输入半角数字[0-9]' ); } } break; case 'IsEmail': re = /^[a-zA-Z\.0-9_-]+@[a-zA-Z\.0-9_-]+$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' ); } break; case 'IsEmailNULL': if (vObj.value!='') { re = /^[a-zA-Z\.0-9_-]+@[a-zA-Z\.0-9_-]+$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' ); } } break; case 'IsDate': if ( !IsDate(vObj.value,vCon) ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效日期' ); } break; case 'IsDateNull': if(vObj.value!='') { if ( !IsDate(vObj.value,vCon) ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效日期' ); } } break; case 'CompareDate': vc_date1 = vCon.substring( 0,vCon.indexOf("to")); vc_date2 = vCon.substring( vCon.indexOf("to")+2 ); var d1=toDate(vc_date1,'yyyy-mm-dd'); var d2=toDate(vc_date2,'yyyy-mm-dd'); if(vc_date1!='' && vc_date2!='') { var d1=toDate(vc_date1,'yyyy-mm-dd'); var d2=toDate(vc_date2,'yyyy-mm-dd'); if(d1>d2) { eNum++; eMsg += genErrMsg( eNum,vObj,'起始日期大于截止日期' ); } } break; case 'CompareStringDate': vc_date1 = vCon.substring( 0,vCon.indexOf("to")); vc_date2 = vCon.substring( vCon.indexOf("to")+2 ); if(vc_date1!='' && vc_date2!='') { if(vc_date1>vc_date2) { eNum++; eMsg += genErrMsg( eNum,vObj,'起始时间大于截止时间' ); } } break; case 'IsZip': re = /^[1-9]\d{5}$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效邮政编码' ); } break; case 'IsZip1': re = /^[0-9-]+$/; if(vObj.value!='') { if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效邮政编码' ); } } break; case 'IsChinese': re = /^[\u0391-\uFFE5]+$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是有效汉字' ); } break; case 'IsPlainText': re = /<[a-zA-Z]+[^>]*>/; if ( vObj.value.search(re) >= 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'不是纯文本,含有HTML标签' ); } break; case 'LengthRange': vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) ); vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) ); if ( vObj.value.length < vc_min || vObj.value.length > vc_max ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内('+vc_min+'-'+vc_max+')' ); } break; case 'NumericRange': vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) ); vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) ); if ( vObj.value < vc_min || vObj.value > vc_max ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的值不在指定范围内' ); } break; case 'IsEqualTo': if ( vObj.value != vCon.value ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'与第一输入的值不相等'); } break; case 'IsPassEqual': if ( vObj.value != vCon.value ) { var str ="两次密码不一致"; eNum ++; eMsg += genErrMsg( eNum,vObj,str ); } break; case 'IsEqualOldPwd': if ( vObj.value != vCon.value ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'与旧密码不相等'); } break; case 'CheckLimit': vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) ); vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) ); if ( vc_max == -1 )//vc_max=-1表示没有上限 { vc_max = vObj.length; } for (j = 0;j < vObj.length;j ++) { if ( vObj[j].checked ) { cItemNum ++; } } if ( cItemNum < vc_min || cItemNum > vc_max ) { eNum ++; eMsg += genErrMsg( eNum,vObj[0],'的选中项目数不在指定范围内' ); } break; case 'SelectValid': if ( vObj.value == '' ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'没有选中有效项' ); } break; case 'SelectValid1': if ( vObj.value == '0' ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'没有选中有效项' ); } break; case 'IsURL': if ( vObj.value != '' ) { re = /^[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/; //re=/^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$/; if ( vObj.value.search(re) != 0 ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'URL地址不正确(www.sohu.com)' ); } } break; case 'VFile'://验证文件 if ( vObj.value != '' ) { var fname=vObj.value.toLowerCase(); var f=fname.substring(fname.length, fname.length-3); if ( f!="gif"&&f!="jpg" ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'文件格式不正确,仅限(gif,jpg)!' ); } } break; case 'CheckValid': var flag=0; for (var i=0;i<document.forms[0].elements.length;i++) { var e1=document.forms[0].elements[i]; if (e1.checked==true&&e1.name!='s0405') { for (var j=0;j<document.forms[0].elements.length;j++) { var e2=document.forms[0].elements[j]; if (e2.value==e1.value&&e2.name=='s0405'&&e2.checked!=true) { flag=1; } } } } if (flag==1) { msg=1; } break; case 'LengthRange': vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) ); vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) ); if ( vObj.value.length < vc_min || vObj.value.length > vc_max ) { eNum ++; eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内('+vc_min+'-'+vc_max+')' ); } break; case 'IsIdCardNo': var v15 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/; var v18 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d[1-9x]$/ if (vObj.value.length == 15) { if (!vObj.value.match(v15)) { eNum++; eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确'); } } else if (vObj.value.length == 18) { if (!vObj.value.match(v18)) { eNum++; eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确'); } } else { eNum++; eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确'); } break; } vfObj[eoldNum] = vObj; } if (eoldNum < eNum) { voldObj = vObj; } } if ( eNum ) { for (i=0;i<eNum;i++) vfObj[i].style.color = "red"; //改变错误处的颜色 fErrMsg = '抱歉,您提交的数据存在 ' + eNum + ' 处错误:\n'; fErrMsg += '==============================\n'; fErrMsg += eMsg; fErrMsg += '==============================\n'; fErrMsg += '\n请修改后再提交,谢谢!'; alert( fErrMsg ); vfObj[0].focus(); return false; } if (msg) { fErrMsg = '抱歉,您提交的数据存在错误:\n'; fErrMsg += '==============================\n'; fErrMsg += '\n有增,删,改功能必须有查询功能!\n\n'; fErrMsg += '==============================\n'; fErrMsg += '\n请修改后再提交,谢谢!'; alert( fErrMsg ); return false; }} //Generate Error Messagefunction genErrMsg(eTimes,vObj,eType){ eMsg = eTimes + '. [ ' + vObj.title + ' ] ' + eType + '。\n'; return eMsg;}//Clear old stationfunction ClearState(elem){ with(elem) { if(style.color == "red") style.color = ""; }}// 判断是否为设定格式的日期function IsDate(op, formatString){ var m, year, month, day; switch(formatString) { case "yyyy-mm-dd" : m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-])(\\d{2})\\4(\\d{2})\\s*$")); if(m == null ) return false; day = m[6]; month = m[5]; year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); break; default : break; } var newdate = year+'/'+month+'/'+day; var date = new Date(newdate); return (typeof(date) == "object" && year == date.getFullYear() && (month-1) == date.getMonth() && day == date.getDate());}function GetFullYear(y){ return ((y<30 ? "20" : "19") + y)|0;}////获得日期function toDate(op, formatString){ var m, year, month, day; switch(formatString) { case "yyyy-mm-dd" : m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$")); if(m == null ) return false; day = m[6]; month = m[5]; year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); break; default : break; } var newdate = year+'/'+month+'/'+day; var date = new Date(newdate); return date;} ASP.NET 如何保存EventHandler类型参数? 求个SQL! 关于JS读取客户端文件 如何实现权限分组的功能。 想问下,asp.net模块里定义Public全局变量,可以代替session吗? 在Visual studio 2005中怎么不能build solution成.dll文件 怎么找到用户控件中的控件??? 关于formvalidator验证日期问题,如验证异常,保存按钮被赋值日期 存储过程在查询分析器中可以执行,在VS.NET中执行不了,请各位救命! 两个问题100分 ▐▐▐▐▐ XML序列化问题 ▐▐▐▐▐ 曾发,无人回!简单三级联动取不到值!
{
var i, j, voldObj, vfObj, vObj, vType, vCon, eoldNum=0 ,eNum = 0, eMsg = '', cItemNum = 0, fErrMsg='', re , msg=0;
vfObj = new Array();
var args = validateForm.arguments;
for (i = 0; i < (args.length-2); i += 3)
{
vObj = args[i];
vType = args[i+1];
vCon = args[i+2];
this.ClearState(vObj); // 清除红色背景
eoldNum = eNum;
if (voldObj!=vObj)
{
switch (vType)
{
case 'FitRegEx':
re = vCon;
if ( vObj.value.search( re ) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
}
break;
case 'FitRegExnull':
if (vObj.value!='')
{
re = vCon;
if ( vObj.value.search( re ) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
}
}
break;
case 'AntiRegEx':
re = vCon;
if ( vObj.value.search( re ) >= 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不符合要求' );
}
break;
case 'NotBlank':
if ( vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'没有填写' );
}
else
{
re = /^[\s]+$/;
if ( vObj.value.search(re) == 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'没有填写' );
}
}
break;
case 'IsRegID':
if ( vObj.value != '' )
{
re = /^[a-zA-Z]+[a-zA-Z0-9_.-]*$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'用户名不合法(以字母开头,可以输入字母、数字、下划线、点、减号)!' );
}
}
break;
case 'IsNumeric':
if ( isNaN(vObj.value) || vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是数字' );
}
break;
case 'IsInt':
re = /^[0-9]+$/;
if ( vObj.value.search(re) != 0 || (vObj.value.length>1 && vObj.value.substring(0,1) == 0) )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'必须输入半角数字[0-9]' );
}
break;
case 'IsNumericNull':
if ( isNaN(vObj.value))
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是数字' );
}
break;
case 'IsIntNull':
re = /^[0-9]+$/;
if(vObj.value!='')
{
if ( vObj.value.search(re) != 0 || (vObj.value.length>1 && vObj.value.substring(0,1) == 0) )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'必须输入半角数字[0-9]' );
}
}
break;
case 'IsEmail':
re = /^[a-zA-Z\.0-9_-]+@[a-zA-Z\.0-9_-]+$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' );
}
break;
case 'IsEmailNULL':
if (vObj.value!='')
{
re = /^[a-zA-Z\.0-9_-]+@[a-zA-Z\.0-9_-]+$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效Email地址' );
}
}
break;
case 'IsDate':
if ( !IsDate(vObj.value,vCon) )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效日期' );
}
break;
case 'IsDateNull':
if(vObj.value!='')
{
if ( !IsDate(vObj.value,vCon) )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效日期' );
}
}
break;
case 'CompareDate':
vc_date1 = vCon.substring( 0,vCon.indexOf("to"));
vc_date2 = vCon.substring( vCon.indexOf("to")+2 );
var d1=toDate(vc_date1,'yyyy-mm-dd');
var d2=toDate(vc_date2,'yyyy-mm-dd');
if(vc_date1!='' && vc_date2!='')
{
var d1=toDate(vc_date1,'yyyy-mm-dd');
var d2=toDate(vc_date2,'yyyy-mm-dd');
if(d1>d2)
{
eNum++;
eMsg += genErrMsg( eNum,vObj,'起始日期大于截止日期' );
}
}
break;
case 'CompareStringDate':
vc_date1 = vCon.substring( 0,vCon.indexOf("to"));
vc_date2 = vCon.substring( vCon.indexOf("to")+2 );
if(vc_date1!='' && vc_date2!='')
{
if(vc_date1>vc_date2)
{
eNum++;
eMsg += genErrMsg( eNum,vObj,'起始时间大于截止时间' );
}
}
break;
case 'IsZip':
re = /^[1-9]\d{5}$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效邮政编码' );
}
break;
case 'IsZip1':
re = /^[0-9-]+$/;
if(vObj.value!='')
{
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效邮政编码' );
}
}
break;
case 'IsChinese':
re = /^[\u0391-\uFFE5]+$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是有效汉字' );
}
break;
case 'IsPlainText':
re = /<[a-zA-Z]+[^>]*>/;
if ( vObj.value.search(re) >= 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'不是纯文本,含有HTML标签' );
}
break;
case 'LengthRange':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vObj.value.length < vc_min || vObj.value.length > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内('+vc_min+'-'+vc_max+')' );
}
break;
case 'NumericRange':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vObj.value < vc_min || vObj.value > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的值不在指定范围内' );
}
break;
case 'IsEqualTo':
if ( vObj.value != vCon.value )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'与第一输入的值不相等');
}
break;
case 'IsPassEqual':
if ( vObj.value != vCon.value )
{
var str ="两次密码不一致";
eNum ++;
eMsg += genErrMsg( eNum,vObj,str );
}
break;
case 'IsEqualOldPwd':
if ( vObj.value != vCon.value )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'与旧密码不相等');
}
break;
case 'CheckLimit':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vc_max == -1 )//vc_max=-1表示没有上限
{
vc_max = vObj.length;
}
for (j = 0;j < vObj.length;j ++)
{
if ( vObj[j].checked )
{
cItemNum ++;
}
}
if ( cItemNum < vc_min || cItemNum > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj[0],'的选中项目数不在指定范围内' );
}
break;
case 'SelectValid':
if ( vObj.value == '' )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'没有选中有效项' );
}
break;
case 'SelectValid1':
if ( vObj.value == '0' )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'没有选中有效项' );
}
break;
case 'IsURL':
if ( vObj.value != '' )
{
re = /^[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
//re=/^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$/;
if ( vObj.value.search(re) != 0 )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'URL地址不正确(www.sohu.com)' );
}
}
break;
if ( vObj.value != '' )
{
var fname=vObj.value.toLowerCase();
var f=fname.substring(fname.length, fname.length-3);
if ( f!="gif"&&f!="jpg" )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'文件格式不正确,仅限(gif,jpg)!' );
}
}
break;
case 'CheckValid':
var flag=0;
for (var i=0;i<document.forms[0].elements.length;i++)
{
var e1=document.forms[0].elements[i];
if (e1.checked==true&&e1.name!='s0405')
{
for (var j=0;j<document.forms[0].elements.length;j++)
{
var e2=document.forms[0].elements[j];
if (e2.value==e1.value&&e2.name=='s0405'&&e2.checked!=true)
{
flag=1;
}
}
}
}
if (flag==1)
{
msg=1;
}
break;
case 'LengthRange':
vc_min = parseFloat( vCon.substring( 0,vCon.indexOf("to") ) );
vc_max = parseFloat( vCon.substring( vCon.indexOf("to")+2 ) );
if ( vObj.value.length < vc_min || vObj.value.length > vc_max )
{
eNum ++;
eMsg += genErrMsg( eNum,vObj,'的长度不在指定范围内('+vc_min+'-'+vc_max+')' );
}
break;
case 'IsIdCardNo':
var v15 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/;
var v18 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d[1-9x]$/ if (vObj.value.length == 15)
{
if (!vObj.value.match(v15))
{
eNum++;
eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确');
}
}
else if (vObj.value.length == 18)
{
if (!vObj.value.match(v18))
{
eNum++;
eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确');
}
}
else {
eNum++;
eMsg += genErrMsg(eNum, vObj, '身份证号格式不正确');
}
break;
}
vfObj[eoldNum] = vObj;
}
if (eoldNum < eNum)
{
voldObj = vObj;
}
}
if ( eNum )
{
for (i=0;i<eNum;i++)
vfObj[i].style.color = "red"; //改变错误处的颜色
fErrMsg = '抱歉,您提交的数据存在 ' + eNum + ' 处错误:\n';
fErrMsg += '==============================\n';
fErrMsg += eMsg;
fErrMsg += '==============================\n';
fErrMsg += '\n请修改后再提交,谢谢!';
alert( fErrMsg );
vfObj[0].focus();
return false;
}
if (msg)
{
fErrMsg = '抱歉,您提交的数据存在错误:\n';
fErrMsg += '==============================\n';
fErrMsg += '\n有增,删,改功能必须有查询功能!\n\n';
fErrMsg += '==============================\n';
fErrMsg += '\n请修改后再提交,谢谢!';
alert( fErrMsg );
return false;
}
}
function genErrMsg(eTimes,vObj,eType)
{
eMsg = eTimes + '. [ ' + vObj.title + ' ] ' + eType + '。\n';
return eMsg;
}//Clear old station
function ClearState(elem)
{
with(elem)
{
if(style.color == "red")
style.color = "";
}
}
// 判断是否为设定格式的日期
function IsDate(op, formatString)
{
var m, year, month, day;
switch(formatString)
{
case "yyyy-mm-dd" :
m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-])(\\d{2})\\4(\\d{2})\\s*$"));
if(m == null ) return false;
day = m[6];
month = m[5];
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
break;
default :
break;
}
var newdate = year+'/'+month+'/'+day;
var date = new Date(newdate);
return (typeof(date) == "object" && year == date.getFullYear() && (month-1) == date.getMonth() && day == date.getDate());
}
function GetFullYear(y)
{
return ((y<30 ? "20" : "19") + y)|0;
}//
//获得日期
function toDate(op, formatString)
{
var m, year, month, day;
switch(formatString)
{
case "yyyy-mm-dd" :
m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$"));
if(m == null ) return false;
day = m[6];
month = m[5];
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
break;
default :
break;
}
var newdate = year+'/'+month+'/'+day;
var date = new Date(newdate);
return date;
}