|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。js|客户端
明天费了一地利间就是做这个工具,道理很复杂,就是用JSP在页面的入手下手部分天生一段代码,
如errorcheck.jsp中所示,但程序太长,仍是费了我很多工夫来改写。
主程序是名为ErrorCheck.java,有了这个ErrorCheck的Bean,我们就不再用为了表单校验往
写那一年夜堆烦人的JavaScript代码了。ErrorCheck类已帮我们天生了几近一切你将会用到的校验办法,
如是不是为数字,长度的校验,是不是为正当email等,你只需在jsp页面里挪用响应的函数就能够了。
今朝一共有七个函数:
一检测是不是为数字
//输出输出框名和毛病提醒信息
numericCheck(StringinputName,StringerrorMsg);
二检测email是不是正当
//输出输出框名和毛病提醒信息
emailCheck(StringinputName,StringerrorMsg);
三检测德律风号码是不是正当
//输出输出框名和毛病提醒信息
telCheck(StringinputName,StringerrorMsg);
四检拆字串长度是不是在划定局限那内
//输出输出框名,毛病提醒信息,最小长度,最年夜长度
lengthCheck(StringinputName,StringerrorMsg,intmin,intmax);
五检拆字串中是不是不含克制的字串
//输出输出框名,毛病提醒信息,克制字串
denyStrCheck(StringinputName,StringerrorMsg,Stringstr);
六检拆字串中是不是含给定字串
//输出输出框名,毛病提醒信息,指定字串
stringCheck(StringinputName,StringerrorMsg,Stringstr);
七检测日期格局是不是为"yyyy-mm-dd"
//输出输出框名和毛病提醒信息
dateCheck(StringinputName,StringerrorMsg);
只需挪用一下这个bean,然后用setFromName()设定你的表单名,再挪用以上函数,
最初out.println(yourID.ErrorCheckScript()),就输入了一段JavaScript代码了,固然了,
别忘了这个<formname=myFormonsubmit="returnerrorCheck();">
ok,justenjoyit,明天太累,不想几,有任何定见请写信给我或在我主页上留言。
注:我调试errorcheck.jsp的时分因服务器的成绩不知为什么不克不及用usebean,setProperty的办法,
只好new了一下,我想你们是应当能够用useBean和setProperty的,本人改一下吧。
=====================================errorcheck.jsp=====================================
<%@pagelanguage="java"import="dbclass.*"%>
<%@pagecontentType="text/html;charset=gb2312"%>
<jsp:useBeanid="cc"scope="page"class="dbclass.ErrorCheck"/>
<%
ErrorCheckec=newErrorCheck();
ec.setFormName("myForm");
ec.numericCheck("number","TheNumberyouinputisinvalid!");
ec.emailCheck("email","TheEmailyouinputisinvalid!");
ec.telCheck("tel","Thetelephoneyouinputisinvalid!");
ec.lengthCheck("strlen","Thestringyouinputinthefourthfieldinnotbetween6-8",6,8);
ec.denyStrCheck("nojeru","Thefifithfieldmustnotcontainjeru","jeru");
ec.stringCheck("jeru","Thesixthfieldmustnotnullandcontianjeru","jeru");
ec.dateCheck("date","Thedateyouinputisinvalid,shouldbeyyyy-mm-dd");
out.println(ec.ErrorCheckScript());
%>
<html>
<bodystyle="font-size:9pt;font-family:Arial;">
<h1>ErrocheckTest</h1>
<hr>
<formname=myFormonsubmit="returnerrorCheck();">
inputanumber:<br>
<inputtype="text"name="number"><p>
inputaemial:<br>
<inputtype="text"name="email"><p>
inputatelephone:<br>
<inputtype="text"name="tel"><p>
inputastring(lengthshouldbetween6-8):<br>
<inputtype="text"name="strlen"><p>
inputastring(shouldenotcontain"jeru"):<br>
<inputtype="text"name="nojeru"><p>
inputastring(mustcontain"jeru"):<br>
<inputtype="text"name="jeru"><p>
inputadate(yyyy-mm-dd):<br>
<inputtype="text"name="date"><p>
<br><inputtype="submit"name="submit"value="go">
</form>
</body>
</html>
=====================================ErrorCheck.java=====================================
packagedbclass;
/**
*ErrorCheckv1.0
*
*这个类是用来在客户端天生JavaScript代码来校验表单的
*原是版本是同事Macro用PHP写的,我感到非常好用,再也
*不必再为那些表单区写烦人的javascript代码拉,感激他!
*此次我用Java改写,封装成一个类,并修复了少量的bug,加
*多了一条校验的功效,它的扩大性很好,今后大概会持续完美。
*
*Mender:
*JeruLiu
*Homepage:
*http://www.cyberlabs.com/~jeru/
*Email:jeru@163.net
*
*/
importjava.io.*;
publicclassErrorCheck{
/*public:thejavascriptstring*/
StringerrorCheckStr;
/*public:theformnameyouused*/
publicStringformName;
publicvoidsetFormName(StringformName){
this.formName=formName;
}
/***************************************************************************
*public:constructorfunctions
*机关函数
***************************************************************************/
publicErrorCheck(){
this.errorCheckStr=
"<scriptID=clientEventHandlersJSlanguage=javascript>"+"
"+
"<!--"+"
";
this.neededFunction();//loadtheneededfunctions
this.errorCheckStr+=
"functionerrorCheck(){"+"
";
}
/***************************************************************************
*public:exportjavascriptscript
*输入JAVASCRIPT剧本
***************************************************************************/
publicStringErrorCheckScript(){
this.errorCheckStr+=
"}"+"
"+
"-->"+"
"+
"</script>"+"
";
returnthis.errorCheckStr;
}
/***************************************************************************
*public:checkthenumeric
*反省录进框值是不是是数字
***************************************************************************/
publicvoidnumericCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(fucCheckNUM(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checkthelength
*反省录进框值的长度
***************************************************************************/
publicvoidlengthCheck(StringinputName,StringerrorMsg,intMinLength,intMaxLength){
this.errorCheckStr+=
"if(fucCheckLength(document."+formName+"."+inputName+".value)<"+MinLength+"||"+"
"+
"fucCheckLength(document."+formName+"."+inputName+".value)>"+MaxLength+"){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checktheemail
*反省录进框值是不是是准确的EMAIL格局
***************************************************************************/
publicvoidemailCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(chkemail(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checkthetelephonenumber
*反省录进框值是不是是德律风号码
***************************************************************************/
publicvoidtelCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(fucCheckTEL(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checkiftheinputvaluecontianthepreferedstring
*反省录进框值是不是是包括给定字串
***************************************************************************/
publicvoidstringCheck(StringinputName,StringerrorMsg,Stringstring){
this.errorCheckStr+=
"if(document."+formName+"."+inputName+".value.indexOf(""+string+"")!=0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checkiftheinputvaluecontainthedenyedstring
*反省录进框值是不是是包括给克制的字串
***************************************************************************/
publicvoiddenyStrCheck(StringinputName,StringerrorMsg,Stringstring){
this.errorCheckStr+=
"if(document."+formName+"."+inputName+".value.length==0||"+"
"+
"document."+formName+"."+inputName+".value.indexOf(""+string+"")!=-1){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
/***************************************************************************
*public:checktheYYYY-MM-DDformatdate
*反省录进框值是不是是YYYY-MM-DD的日期格局
***************************************************************************/
publicvoiddateCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(chkdate(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"
";
}
publicvoidneededFunction(){
this.errorCheckStr+=
"//函数名:fucCheckNUM"+"
"+
"//功效先容:反省是不是为数字"+"
"+
"//参数申明:要反省的数字"+"
"+
"//前往值:1为是数字,0为不是数字"+"
"+
"functionfucCheckNUM(NUM){"+"
"+
"vari,j,strTemp;"+"
"+
"strTemp="0123456789";"+"
"+
"if(NUM.length==0)return0;"+"
"+
"for(i=0;i<NUM.length;i++){"+"
"+
"j=strTemp.indexOf(NUM.charAt(i));"+"
"+
"if(j==-1){"+"
"+
"//申明有字符不是数字"+"
"+
"return0;"+"
"+
"}"+"
"+
"}"+"
"+
"//申明是数字"+"
"+
"return1;"+"
"+
"}"+"
"+
"//函数名:fucCheckLength"+"
"+
"//功效先容:反省字符串的长度"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:长度值"+"
"+
"functionfucCheckLength(strTemp){"+"
"+
"vari,sum;"+"
"+
"sum=0;"+"
"+
"for(i=0;i<strTemp.length;i++){"+"
"+
"if((strTemp.charCodeAt(i)>=0)&&(strTemp.charCodeAt(i)<=255))"+"
"+
"sum=sum+1;"+"
"+
"else"+"
"+
"sum=sum+2;"+"
"+
"}"+"
"+
"returnsum;"+"
"+
"}"+"
"+
"//函数名:chkemail"+"
"+
"//功效先容:反省是不是为EmailAddress"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:0:不是1:是"+"
"+
"functionchkemail(a){"+"
"+
"vari=a.length;"+"
"+
"vartemp=a.indexOf(@);"+"
"+
"vartempd=a.indexOf(.);"+"
"+
"if(temp>1){"+"
"+
"if((i-temp)>3){"+"
"+
"if(tempd!=-1){"+"
"+
"return1;"+"
"+
"}"+"
"+
"}"+"
"+
"}"+"
"+
"return0;"+"
"+
"}"+"
"+
"//函数名:fucCheckTEL"+"
"+
"//功效先容:反省是不是为德律风号码"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:1为是正当,0为分歧法"+"
"+
"functionfucCheckTEL(TEL){"+"
"+
"vari,j,strTemp;"+"
"+
"strTemp="0123456789-()#";"+"
"+
"if(TEL.length==0)return0;"+"
"+
"for(i=0;i<TEL.length;i++){"+"
"+
"j=strTemp.indexOf(TEL.charAt(i));"+"
"+
"if(j==-1){"+"
"+
"//申明有字符分歧法"+"
"+
"return0;"+"
"+
"}"+"
"+
"}"+"
"+
"//申明正当"+"
"+
"return1;"+"
"+
"}"+"
"+
"//函数名:chkdate(YYYY-MM-DD)"+"
"+
"//功效先容:反省是不是为日期"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:0:不是日期1:是日期"+"
"+
"functionchkdate(datestr){"+"
"+
"varlthdatestr"+"
"+
"if(datestr!="")"+"
"+
"lthdatestr=datestr.length;"+"
"+
"else"+"
"+
"lthdatestr=0;"+"
"+
"vartmpy="";"+"
"+
"vartmpm="";"+"
"+
"vartmpd="";"+"
"+
"//vardatestr;"+"
"+
"varstatus;"+"
"+
"status=0;"+"
"+
"if(lthdatestr==0)"+"
"+
"return0;"+"
"+
"for(i=0;i<lthdatestr;i++){"+"
"+
"if(datestr.charAt(i)==-){"+"
"+
"status++;"+"
"+
"}"+"
"+
"if(status>2){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((status==0)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpy=tmpy+datestr.charAt(i)"+"
"+
"}"+"
"+
"if((status==1)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpm=tmpm+datestr.charAt(i)"+"
"+
"}"+"
"+
"if((status==2)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpd=tmpd+datestr.charAt(i)"+"
"+
"}"+"
"+
"}"+"
"+
"year=newString(tmpy);"+"
"+
"month=newString(tmpm);"+"
"+
"day=newString(tmpd)"+"
"+
"if((tmpy.length!=4)||(tmpm.length>2)||(tmpd.length>2)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if(!((1<=month)&&(12>=month)&&(31>=day)&&(1<=day))){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if(!((year%4)==0)&&(month==2)&&(day==29)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month<=7)&&((month%2)==0)&&(day>=31)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month>=8)&&((month%2)==1)&&(day>=31)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month==2)&&(day==30)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"return1;"+"
"+
"}"+"
";
}
/*publicstaticvoidmain(String[]args){
ErrorCheckec=newErrorCheck("testFrom");
Stringscript=ec.ErrorCheckScript();
System.out.println(script);
}*/
}
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|